Как мне сказать CMake использовать Clang в Windows?
У меня есть проект C++, который строит с использованием CMake. Я обычно использую OSX, но теперь я пытаюсь заставить работать и версию для Windows. Я хотел бы использовать Clang на Windows для совместимости.
Я установил предварительно скомпилированный бинарный файл Clang 3.8 из LLVM:
C:\Program Files\LLVM\bin\clang.exe
C:\Program Files\LLVM\bin\clang++.exe
Он также установлен на моем пути:
>clang++
clang++.exe: error: no input files
У меня есть два вопроса:
- Как мне сказать CMake использовать
clang++
когда я звонюcmake --build
? - Как я могу проверить перед сборкой, на какой компилятор CMake настроен?
3 ответа
Вам также понадобится - в дополнение к самим компиляторам Clang - среда сборки / компоновки для Windows.
В последних сборках CMake 3.6 есть несколько интегрированных поддерживаемых сред сборки Clang в Windows (например, Visual Studio, Cygwin; см. Примечания к выпуску).
Я только что провел успешный тест с
- LLVM-3.9.0-r273898-win32.exe от http://llvm.org/builds/
- https://cmake.org/files/v3.6/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:
Рекомендации
В качестве обновления для Visual Studio 2019 вы можете установить цепочку инструментов clang-cl через установщик Visual Studio и использовать ее для создания
.sln
файл:
> mkdir build && cd build
> cmake .. -G "Visual Studio 16 2019" -T ClangCL -A x64
Конечно, вы также можете просто открыть папку, содержащую
CMakeLists.txt
файл сейчас, и VS обеспечит достойную поддержку, позволяя вам выбрать набор инструментов компилятора, однако он не позволит вам использовать графический отладчик, который может быть важен для вас.
Следуйте этим инструкциям:
Установите choco, если у вас его нет: https://chocolatey.org/install
Использовать A
в подсказках.
choco install mingw
choco install llvm
choco install cmake
Сбросьте оболочку, чтобы переменные среды были установлены правильно (вы можете проверить, добавлены ли папки bin для каждой из них в ваш путь).
Использование MinGW
Зайдите в свой проект и запустите:
cmake-gui .
В верхнем меню выберите Tools/Configure
и следуйте этим настройкам:
Выберите MinGW Makefiles и второй вариант (укажите собственные компиляторы):
Дайте путь компиляторам:
Использование Visual Studio
В какую-то папку установите llvm-utils:
git clone https://github.com/zufuliu/llvm-utils.git
cd llvm-utils/VS2017
.\install.bat
Зайдите в свой проект и запустите:
cmake-gui .
В верхнем меню выберите Tools/Configure
и следуйте этим настройкам:
Выберите Visual Studio 2019 и второй вариант (укажите собственные компиляторы). Установлен
LLVM_v142
для Visual Studio 2019. Другие см. здесь.