我正在将Coin 4.0.0库(https://github.com/coin3d/coin)用于某个项目。使用CMake构建该库时,除其他外,我得到以下文件:
bin
|-- Coin4d.dll
`-- Coin4d.pdb
lib
|-- Coin4d.lib
哪个对我来说很好。然后,我们使用qmake
构建最终的可执行文件。在我的qmake .pro
文件中,我有
LIBS += -lCoin4d
但是,当使用Visual Studio 2015链接器将最终的.exe
链接在一起时,我看到它首先搜索(并找到了)Coin4d.lib
:
Searching D:/SVN/simcad/trunkd/ThirdParty/Coin/install/lib\Coin4d.lib:
但是,稍后,出现链接器错误
LINK : fatal error LNK1104: cannot open file 'Coin4sd.lib'
在此处在库文件名中注意多余的'!! >>
我不知道为什么链接程序在找到Coin4sd.lib
之后也要寻找Coin4d.lib
。我想系统地找到答案,但不知道从哪里开始。
所以我的问题是:我可以使用哪些工具/命令来系统地找出为什么链接器显然在首次发现Coin4sd.lib
之后仍在搜索Coin4d.lib
?我是否也应该研究用于构建最终可执行文件的库,并检查其中的任何一个是否引用了Coin4sd.lib
?
我正在将Coin 4.0.0库(https://github.com/coin3d/coin)用于某个项目。使用CMake构建该库时,除其他外,我得到以下文件:bin |-Coin4d.dll`-...
我发现我使用COIN_DLL
作为定义,显然使我拥有了Coin4d.*
文件名。当我使用COIN_NOT_DLL
时,如果我对它的理解正确,则会建立该库的静态版本(文件名为Coin4sd.*
),然后我的链接器就不会再抱怨了。