gpt4 book ai didi

qt - 为什么某些DLL文件需要一个附加的.lib文件进行链接?

转载 作者:行者123 更新时间:2023-12-03 14:55:32 26 4
gpt4 key购买 nike

我对库链接和.lib文件有疑问...

这是上下文:


操作系统= Windows
IDE = QT


我创建了一个DLL:MyLib.dll。
要在我的QT项目中使用该库,我只需要包含一个包含路径,一个到库的链接并使用头文件:

LIBS += "C:\myPath\MyLib.dll"
INCLUDEPATH += "C:\myPath"
HEADERS += \
../myPath/MyLib_global.h \
../myPath/mylib.h


我在我的项目中使用第三方dll:third.dll
如果我与上述示例相同,则无法使用:

LIBS += "C:\myPath\third.dll" 


第三方DLL带有一个.lib文件“ third.lib”,我显然需要将其与DLL一起使用。

这是为什么?为什么某些DLL库需要一个.lib文件,而其他DLL库却不需要?
可能是.lib是访问DLL的静态库吗?

非常感谢!

最佳答案

lib文件是一个导入库文件,它允许最终的可执行文件包含一个导入地址表(IAT),通过该地址表引用所有DLL函数调用。基本上,允许查找功能。

您可以阅读here

要让Qt生成库,请将其添加到.pro:-

CONFIG+= staticlib


Here's有关如何创建库的一些文档。

关于qt - 为什么某些DLL文件需要一个附加的.lib文件进行链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com