Почему мой компоновщик ищет Coin4sd.lib после того, как нашел Coin4d.lib?

Я использую библиотеку Coin 4.0.0 (https://github.com/coin3d/coin) для определенного проекта. При создании этой библиотеки с помощью CMake я получаю, среди прочего, следующие файлы:

bin
|-- Coin4d.dll
`-- Coin4d.pdb
lib
|-- Coin4d.lib

Что мне нравится. Затем мы используемqmakeдля создания нашего финального исполняемого файла. В моем qmake.pro файл у меня есть

LIBS += -lCoin4d

Однако когда финал .exe связаны вместе с помощью компоновщика Visual Studio 2015, тогда я вижу, что он сначала ищет (и находит) 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?

1 ответ

Я узнал, что использовал COIN_DLL как определить, что, по-видимому, заставило меня Coin4d.*имена файлов. Когда я используюCOIN_NOT_DLL то, если я правильно понимаю, статическая версия библиотеки (с именем файла Coin4sd.*), и мой компоновщик больше не жалуется.

Другие вопросы по тегам