Компоновщик Visual Studio не может найти libboost_system - PullRequest
1 голос
/ 23 февраля 2011

Я использую VS 2008 и хочу использовать библиотеку boost :: asio.Я мог бы заставить это работать в новом проекте (я хочу включить boost / bind.hpp и boost / asio.hpp), но в существующем проекте я получаю эту ошибку:

фатальная ошибка LNK1104: Datei "libboost_system-vc90-mt-sgd-1_46.lib "не найден.

Я не могу найти этот файл в каталоге boost, но этот: libboost_system-vc90-mt-gd-1_46.lib (Б-г вместо sgd) Что бы это значило?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 23 февраля 2011

Полагаю, вы использовали установщик Boost от BoostPro. Если это так, переустановите его и убедитесь, что вы выбрали Multithread Debug, static runtime.

1 голос
/ 23 февраля 2011

Boost называет свои библиотеки в зависимости от того, какие параметры использовались при их компиляции . «mt», например, означает «многопоточная среда выполнения»; и я уверен, что вы можете понять, что означает «vc90» (по сравнению, скажем, с «gcc4»). Я думаю, что «s» означает «статический».

Ваше решение - сначала убедиться, что вы используете те же параметры, которые использовались при сборке библиотеки, а затем изменить имя файла, с которым вы ссылаетесь, в параметрах проекта.

0 голосов
/ 23 февраля 2011

Это означает, что вам нужно перейти к свойствам проекта и изменить имя библиотеки повышения, которая в настоящее время включена для связывания. Если у вас есть libboost_system-vc90-mt- gd -1_46.lib, вы должны использовать его.

Configuration Properties => Linker => Input => Additional dependencies
...