2015-03-17 2 views
0

У меня есть консольное приложение C++, которое я успешно скомпилировал для платформ Windows x86 с помощью компилятора Microsoft SDK. Теперь я хочу скомпилировать тот же исходный код для систем x64. Я использую boost-библиотеки (файловые системы, параметры программы и некоторые другие методы). Я перекомпилировал библиотеки boost для x64-систем (используя «bjam -toolset = msvc-9.0 address-model = 64 -build-type = complete stage»). Теперь, когда я пытаюсь скомпилировать исходный файл, он жалуется на ускорение библиотек.Включая библиотеки boost в приложении C++ Win x64

Ранее я включил "libboost_filesystem-vc120-mt-1_55.lib" и успешно скомпилирован. Теперь я включаю "boost_filesystem-vc90-MT-1_55.lib", но компоновщик жалуется:

LINK: фатальный LNK1104 об ошибке: Не удается открыть файл 'libboost_filesystem-vc120-MT-1_55.lib'

Я не знаю, почему она до сих пор просит "libboost_filesystem-vc120-мт-1_55.lib" библиотеки.

Спасибо заранее,

Serhat

+0

Я загружаю x64 переменные enviorenment и компилирую с помощью cl.exe. Он устанавливает набор инструментов как vc120, я полагаю. – serhatg

ответ

3

Для обеспечения двоичной совместимости вы не можете связать импульс, скомпилированный с другой компилятор, чем тот, который вы используете. В этом случае вы используете vc120 для основного компилятора, но компилируете boost с помощью vc90. Эти два инструментария не (преднамеренно) производят бинарные совместимые результаты.

В этом случае вам необходимо скомпилировать boost в командной строке vs2012 x64, с которой связана IDE. Это создаст библиотеки, в которых вы нуждаетесь.

+0

Это делает все ясно! Большое спасибо Mgetz! – serhatg

 Смежные вопросы

  • Нет связанных вопросов^_^