У меня огромный проект на c ++, для которого я использую cmake для генерации файлов .proj.
Использование CMake версии 3.12.2, которая поддерживает генерацию файлов proj VS2017.
Итакдля 64-битной компиляции Windows я использую следующий генератор
CMAKE_GENERATOR="Visual Studio 15 2017 Win64"
. Он создает файл .proj во время сборки и используется для компиляции.
Но из журналов сборкия обнаружил, что компилятор visual studio cl.exe взят из кросс-компиляции
C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe
/ Hostx86 / x64 / cl.exe используется.
Но я хочу, чтобыбыть построенным строго с использованием компилятора x64.Из /Hostx64/x64/cl.exe
Я читал из других вопросов, где люди упоминали о добавлении нескольких тегов в файл .proj, чтобы заставить vs использовать компилятор x64.
Но какя делаю это с файлом cmake?
Я не нашел никаких ссылок с этим уважением, кроме вышеизложенного упоминания о генераторе cmake.
Может ли кто-нибудь помочь мне, как использовать cmake, чтобы строго использовать VSx64-компилятор?
Примечание: я хочу, чтобы он был собран с помощью x64-компилятора, потому что я ссылаюсь на библиотеку boost, которая также скомпилирована с
address-model=64 architecture=x86
И пока основной проект компилируется, яЯ получаю ошибки, связанные с платформой.
fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'
Вот почему я хотел скомпилировать основной проект с помощью компилятора x64.
А также, в чем разница между Hostx86 / x64 / cl.exe и Hostsx64/x64/cl.exe?