我有点困惑为什么第三方。我将使用带有标记为"导入库的.lib文件。"当我运行程序时,我只是将.dll放在与可执行文件相同的目录中并且它可以工作。我正在使用MinGW。
有人可以解释为什么.dll附带.lib导入库,如果我不需要它吗?我怎么会使用它,如果我和MinGW一起使用它,我应该把它放在哪里?
我读了它,看起来MinGW不需要.lib文件(我正在使用),MSVC需要 。这是为什么?
P.S。如果我想将.dll放在包含可执行文件的目录以外的目录中,我可以在.pro文件中添加一行来指向它吗?
谢谢。
答案 0 :(得分:0)
根据http://www.mingw.org/wiki/sampleDLL,MinGW可以从相应的.lib
文件和DLL本身猜测.h
(DLL名称,导出条目名称和ABI)中包含的信息。
根据http://www.mingw.org/wiki/CreateImportLibraries,这适用于“使用MinGW创建的所有DLL以及其他一些”。
如果无法正确猜测,您仍需提供.lib
文件。如果您没有原始链接,后一个链接有关于如何手动生成一个的说明。
前一个链接指的是ld
个文档,以获得更深入的描述。具体来说,它位于ld and WIN32 (cygwin/mingw)节点,“直接链接到dll”部分。除其他外,它概述了需要.lib
时的情况:
.lib
包含纯静态对象(例如cygwinX.dll
)