Ubuntu下安裝clang和libc++


最近在跑別人代碼(Makoto Miwa - Relation Extraction)的時候需要用到clang++,所以需要在Ubuntu上安裝一下clang++。轉載自:算法時空

 

選擇版本

之前推薦的是當前版本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/final

步驟

  • 安裝必要的包:
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再編譯安裝一次:

1 CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM