Я пытаюсь скомпилировать один из моих проектов в Windows 7, используя Visual Studio 2013. Я установил Boost 1.53 и настроил решение с помощью cmake.
Что происходит, так это то, что теперь скомпилированные библиотеки boost находятся в виде libboost_*-vc120-mt(-gd)-1_53.lib
, В опциях проекта компоновщика на вкладке ввода я убедился, что нужные мне библиотеки есть, и на самом деле компилятор может правильно их прочитать.
Однако по какой-то причине, которую я абсолютно не могу понять, компоновщик также пытается найти библиотеки, скомпилированные как vc110
, Например:
error LNK1104: cannot open file 'libboost_filesystem-vc110-mt-gd-1_53.lib'
Набор инструментов платформы, который указан в параметре проекта, — «Visual Studio 2013 (v120)». Я не смог найти ссылку на vc110 ни в одном из вариантов проекта. Можете ли вы помочь мне понять, что происходит?
Этот пост, к счастью, решает мой вопрос. Я не мог найти это раньше. Решение состоит в том, чтобы отредактировать boost/config/auto_link.hpp
потому что код внутри не в состоянии обрабатывать vc120
и заканчивает тем, что предлагает vc110
Как мне указать, на какую версию библиотеки надстройки ссылаться?
Имя библиотеки создается автоматически в заголовке надстройки version.hpp.
Возможно, версия не была перестроена, или вы указываете на неверную версию заголовка?
Вместо того, чтобы исправлять файл конфигурации, попробуйте просто определить макрос перед включением заголовка. Это то, что я сделал в своем проекте.
// # define BOOST_LIB_TOOLSET «vc100» // # include