Как я могу сказать CMake использовать Clang на Windows?
У меня есть проект C++, который строится с использованием CMake. Обычно я строю на OSX, но теперь я пытаюсь получить версию Windows, которая тоже работает. Я хотел бы использовать Clang на Windows по соображениям совместимости.
Я установил предварительно скомпилированный двоичный файл Clang 3.8 из LLVM:
C:Program FilesLLVMbinclang.exe
C:Program FilesLLVMbinclang++.exe
Он также установлен на моем пути:
>clang++
clang++.exe: error: no input files
У меня есть два вопроса:
- Как я могу сказать CMake использовать
clang++
, Когда я вызываюcmake --build
? - Как я могу проверить перед сборкой какой компилятор CMake настроен ли он?
1 ответ:
Вам также понадобится - в дополнение к самим компиляторам Clang-среда сборки/компоновки для Windows.
Последние сборки CMake 3.6 имеют несколько интегрированных поддерживаемых сред сборки Clang в Windows (например, Visual Studio, Cygwin; см.примечания к выпуску ).Я только что провел успешный тест с
- LLVM-3.9.0-r273898-win32.exe из http://llvm.org/builds/
- cmake-3.6.0-rc4-win64-x64.msi от https://cmake.org/download/
- Microsoft VS2015 Community Edition версия 14.0.23107.0
Все установленные по своим стандартным путям с их каталогами
bin
в глобальной средеPATH
.Часть, которую вам нужно знать, это установка правильного набора инструментов с помощью CMake
-T"LLVM-vs2014"
опция командной строки. Во время процесса настройки CMake сообщит вам, какой компилятор у него есть нашли/забрали.CMakeLists.txt
cmake_minimum_required(VERSION 3.6) project(HelloWorld) file( WRITE main.cpp "#include <iostream>\n" "int main() { std::cout << \"Hello World!\" << std::endl; return 0; }" ) add_executable(${PROJECT_NAME} main.cpp)
Консоль Windows
...> mkdir VS2015 ...> cd VS2015 ...\VS2015> cmake -G"Visual Studio 14 2015" -T"LLVM-vs2014" .. -- The C compiler identification is Clang 3.9.0 -- The CXX compiler identification is Clang 3.9.0 -- Check for working C compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- Check for working C compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: .../VS2015 ...\VS2015> cmake --build . Microsoft (R)-Buildmodul, Version 14.0.23107.0 [...] ...\VS2015> Debug\HelloWorld.exe Hello World!
Подсказки По Установке
Обратите внимание, что я добавил LLVM в пути поиска во время настройки:
И вы можете перепроверить доступные "наборы инструментов платформы" на странице свойств любого проекта VS:
Ссылки