web-dev-qa-db-ja.com

CMakeにWindowsでClangを使用するように指示するにはどうすればよいですか?

CMakeを使用してビルドするC++プロジェクトがあります。私は通常OSX上でビルドしますが、今はWindowsバージョンも動作させようとしています。互換性の理由から、WindowsでClangを使用したいと思います。

LLVMからプリコンパイル済みのClang 3.8バイナリをインストールしました。

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

PATHにもインストールされます。

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

2つの質問があります。

  1. CMakeにclang++を呼び出すときcmake --build
  2. CMakeがどのコンパイラで構成されているかをビルドする前に、どのように確認できますか?
24
sdgfsdh

Clangコンパイラ自体に加えて、Windows用のビルド/リンク環境も必要です。

最新のCMake 3.6ビルドには、Windowsでサポートされているいくつかの統合されたClangビルド環境があります(例:Visual Studio、Cygwin。 リリースノート を参照)。

私はちょうど成功したテストを実行しました

グローバル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を検索パスに追加したことに注意してください。

LLVM Installation with Add to PATH

また、VSプロジェクトのプロパティページで利用可能な「プラットフォームツールセット」をクロスチェックできます。

VS Project Properties - Platform Toolsets

参考文献

35
Florian