Clang for Windows

LLVM 3.4でウィンドウズ版のバイナリー(インストーラー)が配布されています。


使用目的別一覧

システムインクルードファイル(#include <iostream> など)を含む場合、MinGW32が必要。
以下、固定のディレクトリーが参照される。
  • C:/mingw/include
  • C:/mingw/lib
  • C:/mingw/lib/gcc/mingw32/4.[3-5].0/include/c++
使用目的別一覧
使用目的 コマンド MinGW32 MSVC 備考
コンパイル clang example.cpp 必要 不要 MinGW32 は必ず必要
clang-cl example.cpp 不要 必要 clang-cl 参照
AST ダンプ clang-check -ast-dump example.cpp -- 必要 不要  
シンタックス
チェック
clang-check example.cpp -- 必要 不要  
clang-cl -Wall -Zs example.cpp 不要 必要 clang-cl 参照
静的解析 clang --analyze example.cpp 必要 不要  
clang-check --analyze example.cpp -- 必要 不要  
ソースコード補完 clang -cc1 -code-completion-at=example.cpp:行:列 example.cpp 必要 不要  
ソースコード整形 clang-format example.cpp 不要 不要 ClangFormat 参照
clang-apply-replacements dir 不要 不要 ClangApplyReplacements 参照
ソースコード修正 clang-modernize example.cpp 必要 不要  
clang-tidy example.cpp -- 必要 不要  

配布物概要

ドキュメント対応表(一部抜粋)
C:/Program Files (x86)/LLVM/
ファイル(latest) 3.4 documentation 解説 概要
bin/clang++.exe [3.4]UsersManual   C++ コンパイラー(clang.exeと同じ)
bin/clang-apply-replacements.exe   ClangApplyReplacements ディレクトリーを指定して clang-format -i (ファイル上書き)を実行
bin/clang-check.exe [3.4]ClangCheck   基本的なエラーチェックおよびASTのダンピング
bin/clang-cl.exe [3.4]clang-cl clang-cl cl.exeとの互換性のために設計されたVC++コンパイラー
ClangFormat インデントスタイル(ソースコード整形)
    ソースコードの近代化(古いコードから新しい(C++11など)へ)
bin/clang-tidy.exe     ClangベースのC++ linter ツール
bin/clang.exe [3.4]UsersManual   C コンパイラー(clang++.exeと同じ)
bin/git-clang-format     GitのためのClangFormat統合(Python Script)
bin/libclang.dll [3.4]Tooling  
Clang の安定した高レベルのCインタフェース
ヘッダーファイルは以下
/include/clang-c/Index.h
/include/clang-c/CXCompilationDatabase.h
bin/lld.exe     LLVM リンカー
bin/llvm-ar.exe [3.4]archiver   LLVM アーカイバー
bin/llvm-objdump.exe     LLVM オブジェクトファイルのダンパー(disassemble)
include/clang-c/CXCompilationDatabase.h [3.4]JSON   libclang.lib, libclang.dll のヘッダーファイル
include/clang-c/Index.h [3.4]Tooling   libclang.lib, libclang.dll のヘッダーファイル
include/llvm-c/lto.h [3.4]LTO   LTO.imp のヘッダーファイル
lib/libclang.lib [3.4]Tooling  
Clang の安定した高レベルのCインタフェース
ヘッダーファイルは以下
/include/clang-c/Index.h
/include/clang-c/CXCompilationDatabase.h
lib/LTO.imp [3.4]LTO  
Link Time Optimization
ヘッダーファイルは以下
include/llvm-c/lto.h
msbuild-bin/cl.exe   clang-clVisualStudioからClangを使う VisualStudio用のプラットフォーム ツールセットで使用する実行ファイル
share/clang/clang-format-bbedit.applescript [3.4]BBEditの統合 ClangFormatClangFormat との統合 BBEdit から clang-format を使うためのスクリプト
share/clang/clang-format-diff.py [3.4]patch パッチの再フォーマット用のスクリプト
share/clang/clang-format-sublime.py   Sublime Text から clang-format を使うためのスクリプト
share/clang/clang-format.el [3.4]Emacsの統合 Emacs から clang-format を使うためのスクリプト
share/clang/clang-format.py [3.4]Vimの統合 Vim(windows) から clang-format を使うためのスクリプト
tools/msbuild/*   clang-clVisualStudioからClangを使う
VisualStudio用のプラットフォーム ツールセット
(VisualStudioからClangを使う)

全ての配布物

配布物
C:\Program Files (x86)\LLVM
│  Uninstall.exe
│
├─bin
│      clang++.exe
│      clang-apply-replacements.exe
│      clang-check.exe
│      clang-cl.exe
│      clang-format.exe
│      clang-modernize.exe
│      clang-tidy.exe
│      clang.exe
│      git-clang-format
│      libclang.dll
│      lld.exe
│      llvm-ar.exe
│      llvm-objdump.exe
│
├─include
│  ├─clang-c
│  │      CXCompilationDatabase.h
│  │      CXString.h
│  │      Index.h
│  │      Platform.h
│  │
│  └─llvm-c
│          lto.h
│
├─lib
│  │  libclang.lib
│  │  LTO.imp
│  │
│  └─clang
│      └─3.4
│          │  asan_blacklist.txt
│          │
│          ├─include
│          │  │  altivec.h
│          │  │  ammintrin.h
│          │  │  arm_neon.h
│          │  │  avx2intrin.h
│          │  │  avxintrin.h
│          │  │  bmi2intrin.h
│          │  │  bmiintrin.h
│          │  │  cpuid.h
│          │  │  emmintrin.h
│          │  │  f16cintrin.h
│          │  │  float.h
│          │  │  fma4intrin.h
│          │  │  fmaintrin.h
│          │  │  immintrin.h
│          │  │  Intrin.h
│          │  │  iso646.h
│          │  │  limits.h
│          │  │  lzcntintrin.h
│          │  │  mm3dnow.h
│          │  │  mmintrin.h
│          │  │  mm_malloc.h
│          │  │  module.map
│          │  │  nmmintrin.h
│          │  │  pmmintrin.h
│          │  │  popcntintrin.h
│          │  │  prfchwintrin.h
│          │  │  rdseedintrin.h
│          │  │  rtmintrin.h
│          │  │  shaintrin.h
│          │  │  smmintrin.h
│          │  │  stdalign.h
│          │  │  stdarg.h
│          │  │  stdbool.h
│          │  │  stddef.h
│          │  │  stdint.h
│          │  │  stdnoreturn.h
│          │  │  tbmintrin.h
│          │  │  tgmath.h
│          │  │  tmmintrin.h
│          │  │  unwind.h
│          │  │  varargs.h
│          │  │  wmmintrin.h
│          │  │  x86intrin.h
│          │  │  xmmintrin.h
│          │  │  xopintrin.h
│          │  │  __wmmintrin_aes.h
│          │  │  __wmmintrin_pclmul.h
│          │  │
│          │  └─sanitizer
│          │          asan_interface.h
│          │          common_interface_defs.h
│          │          dfsan_interface.h
│          │          linux_syscall_hooks.h
│          │          lsan_interface.h
│          │          msan_interface.h
│          │
│          └─lib
│              └─windows
│                      clang_rt.asan-i386.lib
│                      clang_rt.asan_dll_thunk-i386.lib
│                      clang_rt.san-i386.lib
│
├─msbuild-bin
│      cl.exe
│
├─share
│  └─clang
│          clang-format-bbedit.applescript
│          clang-format-diff.py
│          clang-format-sublime.py
│          clang-format.el
│          clang-format.py
│
└─tools
    └─msbuild
            install.bat
            Microsoft.Cpp.Win32.LLVM-vs2010.props
            Microsoft.Cpp.Win32.LLVM-vs2010.targets
            Microsoft.Cpp.Win32.LLVM-vs2012.props
            Microsoft.Cpp.Win32.LLVM-vs2012.targets
            Microsoft.Cpp.Win32.LLVM-vs2012_xp.props
            Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets
            toolset-vs2013.props
            toolset-vs2013.targets
            toolset-vs2013_xp.props
            toolset-vs2013_xp.targets
            uninstall.bat