Вопрос по visual-studio-2013, boost, linker-errors, c++ – Как мне указать, на какую версию библиотеки надстройки ссылаться?

10

я пытаюсь перенести проект, написанный в VS2012, на VS2013.

Я успешно скомпилировал boost 1.53.0 (я сначала попробовал 1.54.0, но получил некоторые ошибки компилятора) и получил библиотеки вроде.libboost_filesystem-vc120-mt-1_53.lib

Но, пытаясь построить мой проект, компоновщик жалуется:

error LNK1104: cannot open file 'libboost_filesystem-vc110-mt-1_53.lib'

я искал некоторые настройки проекта во всем моем решении, чтобы выяснить, почемупытается загрузить старую версию библиотеки, но я неничего не найти.

Как компоновщик узнает, какую библиотеку использовать? И как я могу исправить мою проблему? "

Это как раз мой вопрос. Почему он ищет версию vc110, а не vc120? Ben
Вероятно,#pragma comment (lib) John Dibling
Ага, теперь вижу Да, смотрите @MartinBeckett 'ответ. John Dibling
@JohnDibling: нет, я уже создал версию vc120. Но компоновщик ищет более старую версию, и я нене знаю почему. Я никогда не указывал, какую библиотеку использовать. Это работало до сих пор, и я понятия не имею, как компоновщик мог знать раньше, какую библиотеку использовать. Ben

Ваш Ответ

1   ответ
8

#39;ответ на эту тему:

Как создать повышение с новым предварительным просмотром Visual Studio 2013?

Компоновщик знает, какую библиотеку использовать, потому что она указана вповышение / конфигурация / auto_link.hpp.

В этом файле отсутствует несколько строк кода для обработки версии vc120:

#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)

     // vc11:
#    define BOOST_LIB_TOOLSET "vc110"

#  elif defined(BOOST_MSVC)

     // vc12:
#    define BOOST_LIB_TOOLSET "vc120"

Теперь он компилируется и ссылки просто отлично!

Спасибо. отличный пост. Ryan J. Shrott
Хорошее место, сообщите об этом в список ошибок Boost Martin Beckett

Похожие вопросы