为什么我的链接器找到Coin4d.lib后会搜索Coin4sd.lib?

问题描述 投票:0回答:1

我正在将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`-...

c++ linker-errors qmake coin3d
1个回答
0
投票

我发现我使用COIN_DLL作为定义,显然使我拥有了Coin4d.*文件名。当我使用COIN_NOT_DLL时,如果我对它的理解正确,则会建立该库的静态版本(文件名为Coin4sd.*),然后我的链接器就不会再抱怨了。

© www.soinside.com 2019 - 2024. All rights reserved.