最近在跑別人代碼(Makoto Miwa - Relation Extraction)的時候須要用到clang++,因此須要在Ubuntu上安裝一下clang++。轉載自:算法時空html
以前推薦的是當前版本trunk
,可是有時它在不斷更新,因此最好仍是選擇特定版本,這裏咱們選擇clang 5.0最終版,那麼官網指南中可將trunk
改爲tags/RELEASE_500/final
。
例如:
http://llvm.org/svn/llvm-project/llvm/trunk
能夠改爲:
http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/finalc++
1 sudo apt install subversion 2 sudo apt install cmake
CL
):1 cd ~ 2 sudo mkdir CL 3 cd CL
llvm
:1 svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final llvm
clang
:1 cd llvm/tools 2 svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_500/final clang 3 cd ../..
clang
工具(可選)1 cd llvm/tools/clang/tools 2 svn co http://llvm.org/svn/llvm-project/clang-tools-extra/tags/RELEASE_500/final extra 3 cd ../../../..
Compiler-RT
(可選)1 cd llvm/projects 2 svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_500/final compiler-rt 3 cd ../..
libcxx
(絕對要下載)還有libcxxabi
(千萬不要遺漏):1 cd llvm/projects 2 svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_500/final libcxx 3 svn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_500/final libcxxabi 4 cd ../..
1 mkdir build 2 cd build
注意將默認的Debug模式換成Release模式.算法
1 cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm 2 make 3 sudo make install
1 clang++ --help
c++11
使用libc++
編譯x.cpp
並執行a.out
1 clang++ -std=c++11 -stdlib=libc++ x.cpp 2 .\a.out
x.cpp
的正確性1 clang x.cpp -fsyntax-only
x.cpp
未優化的LLVM代碼1 clang x.cpp -S -emit-llvm -o -
x.cpp
通過O3
優化的LLVM代碼1 clang x.cpp -S -emit-llvm -o - -O3
x.cpp
的原生機器碼1 clang x.cpp -S -O3 -o -
安裝完畢以後, 若是不嫌麻煩的話, 能夠用clang
再編譯安裝一次:svn
1 CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm