Ubuntu下安裝clang和libc++

最近在跑別人代碼(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
相關文章
相關標籤/搜索