it-swarm.com.de

Wie kann ich CMake anweisen, Clang unter Windows zu verwenden?

Ich habe ein C++ - Projekt, das mit CMake erstellt. Normalerweise baue ich auf OSX, aber jetzt versuche ich auch, eine Windows-Version zum Laufen zu bringen. Ich möchte Clang unter Windows aus Kompatibilitätsgründen verwenden.

Ich habe die vorkompilierte Clang 3.8-Binärdatei von LLVM installiert:

C:\Program Files\LLVM\bin\clang.exe
C:\Program Files\LLVM\bin\clang++.exe

Es ist auch auf meinem PATH installiert:

>clang++
clang++.exe: error: no input files

Ich habe zwei Fragen:

  1. Wie kann ich CMake anweisen, clang++ Zu verwenden, wenn ich cmake --build Aufrufe?
  2. Wie kann ich vor dem Erstellen überprüfen, mit welchem ​​Compiler CMake konfiguriert ist?
24
sdgfsdh

Zusätzlich zu den Clang-Compilern benötigen Sie eine Build/Link-Umgebung für Windows.

Die neuesten CMake 3.6-Builds verfügen über mehrere integrierte unterstützte Clang-Build-Umgebungen unter Windows (z. B. Visual Studio, Cygwin; siehe Versionshinweise ).

Ich habe gerade einen erfolgreichen Test mit durchgeführt

Alle auf ihren Standardpfaden mit ihren bin Verzeichnissen in der globalen PATH Umgebung installiert.

Der Teil, den Sie wissen müssen, ist das Einstellen des richtigen Toolset mit dem CMake -T"LLVM-vs2014" Befehlszeilenoption. Während des Konfigurationsprozesses teilt CMake Ihnen mit, welchen Compiler er gefunden/genommen hat.

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-Konsole

...> 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!

Installationshinweise

Bitte beachten Sie, dass ich meinen Suchpfaden während des Setups LLVM hinzugefügt habe:

LLVM Installation with Add to PATH

Und Sie können die verfügbaren "Platform Toolsets" auf der Eigenschaftsseite jedes VS-Projekts überprüfen:

VS Project Properties - Platform Toolsets

Referenzen

35
Florian