Проблема с компоновкой линкера в Visual Studio 2008 - PullRequest
0 голосов
/ 01 апреля 2010

У меня довольно неясная проблема с линковкой в ​​Visual Studio 2008. Сообщение об ошибке компоновщика: «LNK1104: не удается открыть файл boost_thread-vc90-mt-gd-1_38.lib '». Все пути и зависимости установлены. Однако я заметил, что Visual Studio пропускает boost_thread-vc90-mt-gd-1_38.lib, а не libboost_thread-vc90-mt-gd-1_38.lib (обратите внимание на lib в начале имени файла ). Я добавил .lib как libboost_thread-vc90-mt-gd-1_38.lib в проект, и он появляется как libboost_thread-vc90-mt-gd-1_38.lib в командной строке.

Почему в Visual Studio начинается имя файла?

1 Ответ

1 голос
/ 01 апреля 2010

В Boost существует правило именования библиотек:

1) boost_thread-vc90-mt-gd-1_38.lib для динамически связанной версии 2) libboost_thread-vc90-mt-gd-1_38.lib для статически связанной версии

BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".

Существует определение препроцессора, которое вы можете определить в своем проекте, чтобы использовать динамически связанную версию библиотеки наддува BOOST_DYN_LINK=1

Имеет это описание:

BOOST_DYN_LINK: Optional: when set link to dll rather than static library.

Еще одно определение, которое указывает использовать динамическую версию Boost.Thread: BOOST_THREAD_USE_DLL

...