2013-11-16 3 views
15

Я пытаюсь скомпилировать один из моих проектов в Windows 7 с помощью Visual Studio 2013. Я установил Boost 1.53 и установил решение с помощью cmake.Visual Studio 2013 (vs120) запрашивает неправильные библиотеки ускорений

Что происходит, так это то, что теперь скомпилированные библиотеки boost находятся в форме libboost_*-vc120-mt(-gd)-1_53.lib. В параметрах проекта компоновщика на вкладке ввода я проверил, что библиотеки, которые мне нужны, есть, и на самом деле компилятор может их правильно прочитать.

Однако по какой-то причине я абсолютно не понимаю, компоновщик также пытается найти библиотеки, составленные как vc110. Например:

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

Платформа Toolset, который указан в опции проекта является "Visual Studio 2013 (v120)". Я не мог найти ссылку на vc110 в любом из вариантов проекта. Можете ли вы помочь мне понять, что происходит?

ответ

12

Это сообщение, к счастью, решает мой вопрос. Я не смог найти его раньше. Решение состоит в том, чтобы редактировать boost/config/auto_link.hpp, потому что код внутри не в состоянии справиться с vc120, и заканчивает тем, что предполагает vc110

How do I specify, which version of boost library to link to?

2

Название библиотеки автоматически сгенерирован в заголовке повышающего version.hpp

Возможно, версия не была восстановлена, или указывают на неправильную версию заголовка?

+0

Чтобы быть полностью честными, после построения библиотеки всех имена содержат только строки 'vc' по какой-то причине, но CMAK e не мог распознать их, поэтому я их переименовал. Но действительно ли это имеет значение? – Svalorzen

+0

Обратите внимание, что cmake фактически искал библиотеки 'vc120'.lib, из-за версии компилятора, я думаю. И у меня есть только эта версия Boost на машине. – Svalorzen

+0

Я думаю, что до тех пор, пока libs соответствуют версии в auto_link, все в порядке. Я не знаю, есть ли формат компоновщика между vs2012/13 - возможно, нет –

0

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

// # определить BOOST_LIB_TOOLSET «VC100» // # включают