Проблема с подключением внешней библиотеки |
Здравствуйте, гость ( Вход | Регистрация )
Проблема с подключением внешней библиотеки |
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 |
если это разные компилеры, то могут быть проблемы
библиотека точно также от vs6 - а она компилится и линкуется !!! вопросы экспорта в основном следующие: несовпадение декорированных имён (если библиотека собрана без def-файла). это либо пересобрать библиотеку с def, либо писать имена функций с "хвостами", как они есть. если библиотека экспортирует классы, то скрестить мелкософт с мингвом, увы, не удастся в принципе. тогда нужно писать доп. библиотеку для msvc, которая будет линковать к себе lib, создавать класс и экспортировать чистые функции, без классов. причём собирать её надо обязательно с .def файлом, т.е. чтобы ничего лишнего там не болталось, никаких хвостов с декорированием. а потом её обрабатывать reimp'ом (причём именно 0.3, ибо 0.4 глючный). либо юзать её через LoadLibrary(без .lib). я так делала, у меня работает. Сообщение отредактировал Iron Bug - 6.6.2011, 7:01 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 6:22 |