У меня есть вопрос о библиотеке связывании и .lib файлов ...Зачем некоторым DLL-файлам нужен дополнительный .lib-файл для связи?
это контекст:
- OS = Windows,
- IDE = QT
Я создал DLL: MyLib.dll.
Чтобы использовать эту библиотеку в моем проекте QT, у меня только включить включаемый путь, ссылка на библиотеку и использовать файлы заголовков:
LIBS += "C:\myPath\MyLib.dll"
INCLUDEPATH += "C:\myPath"
HEADERS += \
../myPath/MyLib_global.h \
../myPath/mylib.h
Я использую библиотеку DLL третьей стороны в моем проекте: третий .dll
Если я сделать то же самое, как и в приведенном выше примере, он не работает:
LIBS += "C:\myPath\third.dll"
DLL, третья сторона приходит с .lib файл «third.lib», который я по-видимому, нужно использовать вместе с DLL.
Почему? Зачем некоторым библиотекам DLL нужен .lib-файл, но библиотеки DLL нет?
Может ли быть .lib статическая библиотека, обращающаяся к DLL?
Большое спасибо!
благодарит @ Merlin069 за ваш ответ. это разъясняет! Одна вещь: когда я создал myLib.dll, я не видел никакого способа создать файл lib с DLL-файлом. заключается в том, что при выборе при создании DLL? Кроме того, все вызовы функций в моей DLL, похоже, доступны без файла lib. Это не то, что должен разрешить файл .lib? спасибо – WewillSee
По умолчанию должна быть библиотека импорта. – ExpatEgghead
Вероятно, в вашей среде IDE создается настройка для создания файла lib, если он еще не создан. Насколько я понимаю, без файла lib вы можете загрузить DLL отдельно и вызвать функции, но lib требуется, если вы хотите создать исполняемый файл со статическими библиотеками. – TheDarkKnight