使用visual studio 2008,我有一个库的.H
和.LIB
文件。
我编写了一个程序,并通过项目属性引用了LIB。
它编译得很好,但是当它运行时,它会要求安装DLL。
如果DLL与EXE
处于同一个目录中,但如果我有LIB
,那么它是否已经意味着这些函数与我的程序静态链接?
答案 0 :(得分:10)
并非所有lib
个文件都是静态库。有些是导入库,很可能是你链接的。
如果您的lib
文件比相应的dll
文件小得多,那么这肯定表明它是一个导入库。
答案 1 :(得分:7)
让程序使用DLL需要导入库。它是一个扩展名为.lib的文件,就像静态.lib一样。但它非常小,它只包含DLL导出的函数列表。链接器需要这样,因此它可以在导入表中嵌入DLL的名称。您可以通过在.exe
上运行Dumpbin.exe / imports来自行查看