LNK1104 для ненужной библиотеки - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь включить библиотеку Boost в мой проект OpenFrameworks, в частности, когда я добавляю каталог boost root в Additional Include Directories нового проекта, я вижу ошибку LNK1104 cannot open file 'libboost_filesystem-vc141-mt-gd-x32-1_72.lib', хотя я не даже не нужна библиотека файловой системы.

Однако, когда я добавил каталог boost root в Additional Include Directories недавно созданного консольного проекта c ++, ошибка не отображается, и я могу использовать библиотека без проблем.

Библиотека времени выполнения /MDd.

Что может вызвать эту проблему? Сломанная сборка наддува?

Один

1 Ответ

2 голосов
/ 03 марта 2020

Взято из комментариев к вопросу. Хотя это необычно, возможно, заголовок в одной из зависимостей вашего проекта имеет то же имя, что и заголовок в библиотеке файловой системы. И поскольку вы ставите boost первым в Additional Include Directories, заголовок boost был включен вместо заголовка из другой библиотеки. По умолчанию с Visual Studio boost автоматически вставляет команды ссылки, используя #pragma comment(lib, libname), поэтому включение этого заголовка приведет к зависимости ссылки.

Решение, которое можно попробовать в этом случае, - переместить boost в конец Additional Include Directories, поэтому, когда компилятор ищет заголовок, он сначала найдет заголовок из предыдущей зависимости.

...