Re: static Qt - проблемы с линковкой
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 09.09.08 20:27
Оценка:
Здравствуйте, commando, Вы писали:

C>Жило-было приложение, написанное на MSVC 2005, которое использовало библиотеку Qt 4 версии в виде dll. Потом было решено заменить dll на статические библиотеки (Qt была удалена и пересобрана с опцией -static). В результате при компиляции появились ошибки вроде:


C>
C>qtgui.lib(qfiledialog_win.obj) : error LNK2001: unresolved external symbol __imp__GetOpenFileNameA@4
C>


Судя по __imp_ — функция явно откуда-то импортируется (из dll). Судя по имени — похожа на WinAPI.
Ищем в MSDN — comdlg32.dll,
Header: Declared in Commdlg.h, include Windows.h
Import library: Comdlg32.lib

Теперь идем в свойства проекта Project properties/Linker/Input/Additional Dependencies, добавляем comdlg32.

Когда вы собирали с Qt dll-ками, они уже импортировали все, что нужно, а ваш код непосредственно не вызывал эту функцию. а теперь Qt в либах, все внешние зависимости и вылезли, многие удовлетворены теми либами, которые MSVC всегда использует (Default libraries), но Comdlg32.lib к их числу не относится.
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.