crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Проблема с подключением внешней библиотеки
Vas2
  опции профиля:
сообщение 3.6.2011, 20:34
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 2.6.2011
Пользователь №: 2715

Спасибо сказали: 0 раз(а)




Репутация:   0  


у меня Qt creator 2.0.1, основан на 4.7, WinXP, minGW
подключил 2 библиотеки P100X.lib, PortLib.lib
в файле .pro
LIBS += P100X.lib
LIBS += PortLib.lib

обе библиотеки он находит (проверено изменением имени), обе находятся в одном и томже каталоге программы
фунукции библиотеки P100X.lib находит , а функции библиотеки PortLib.lib не находит, пишет ошибку: undefined reference to 'имя функции'
особенности: библиотека P100X.lib содержит в себе запросы к библиотеки P100X.dll, а библиотека PortLib.lib полность статическая
библиотека PortLib.lib имеет свой хидер (.h) не совпадающий с именем библиотеки (пробовал вручную создавать совпадающее имя) - библ не мои
Вопрос: чтоже всетаки можно попробовать чтобы использовать функции из 2-ой библиотеки??? За любой ответ буду очень признателен
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 6.6.2011, 6:58
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


если это разные компилеры, то могут быть проблемы
Цитата(Vas2 @ 5.6.2011, 20:31) *
библиотека точно также от vs6 - а она компилится и линкуется !!!

вопросы экспорта в основном следующие:
несовпадение декорированных имён (если библиотека собрана без def-файла). это либо пересобрать библиотеку с def, либо писать имена функций с "хвостами", как они есть.
если библиотека экспортирует классы, то скрестить мелкософт с мингвом, увы, не удастся в принципе. тогда нужно писать доп. библиотеку для msvc, которая будет линковать к себе lib, создавать класс и экспортировать чистые функции, без классов. причём собирать её надо обязательно с .def файлом, т.е. чтобы ничего лишнего там не болталось, никаких хвостов с декорированием. а потом её обрабатывать reimp'ом (причём именно 0.3, ибо 0.4 глючный).
либо юзать её через LoadLibrary(без .lib). я так делала, у меня работает.

Сообщение отредактировал Iron Bug - 6.6.2011, 7:01
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 6:22