天在CentOS上将最新版本的LLVM套件(LLVM,Clang和Libc++)編譯安裝好了,中間遇到了不少問題。雖然已經有很多部落格介紹如何編譯安裝LLVM了,但是根據我自己親身體驗的情況來看,還是有地方需要注意的,也有東西值得跟大家分享一下。

下面開始:
首先從http://releases.llvm.org/download.html#4.0.1這邊下載下傳最新的版本。如果從SVN下載下傳代碼的話,已經是5.0的開發版本了。如果需要使用穩定版本,推薦自己下載下傳4.0.1的代碼包,需要下載下傳4個檔案:
LLVM source code
Clang source code
Clang Tools Extra source code
Compiler RT source code
下載下傳好了以後,四個壓縮包都解壓出來,得到四個目錄:
llvm-4.0.1.src
cfe-4.0.1.src
clang-tools-extra-4.0.1.src
compiler-rt-4.0.1.src
然後按下面的步驟組織:
mv cfe-4.0.1.src clang
mv clang/ llvm-4.0.1.src/tools/
mv clang-tools-extra-4.0.1.src extra
mv extra/ llvm-4.0.1.src/tools/clang/
mv compiler-rt-4.0.1.src compiler-rt
mv compiler-rt llvm-4.0.1.src/projects/
這樣以後clang,clang-tools-extra和compiler-rt就可以和llvm一起編譯了。
在llvm-4.0.1.src同一層目錄上建立個目錄build-4.0.1并進入:
mkdir build-4.0.1
cd build-4.0.1
然後Configure and build LLVM and Clang:
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On ../llvm-4.0.1.src/
-
— Specify for directory the full pathname of where you want the LLVM tools and libraries to be installed (default-DCMAKE_INSTALL_PREFIX=directory
)./usr/local
-
— Valid options for type are Debug, Release, RelWithDebInfo, and MinSizeRel. Default is Debug.-DCMAKE_BUILD_TYPE=type
-
— Compile with assertion checks enabled (default is Yes for Debug builds, No for all other build types).-DLLVM_ENABLE_ASSERTIONS=On
注意 : 這後兩個選項推薦大家加上 ,否則會産生巨大的檔案,我第一次編譯的時候,沒有加上這兩個選項,編譯出來的結果多大 9.4G (夠吓人的吧?把我的磁盤都耗盡了,還報錯,google了好久才發現是磁盤空間不夠) ,耗時超過一個半小時。
然後make:
make -j 4
- The default target (i.e.
) will build all of LLVMmake
- The
target (i.e.check-all
) will run the regression tests to ensure everything is in working order.make check-all
- CMake will generate build targets for each tool and library, and most LLVM sub-projects generate their own
target.check-<project>
- Running a serial build will be slow. Make sure you run a parallel build; for
, usemake
.make -j
盡量把幾個核都用上,加快編譯速度。
然後make install:
sudo make install
最後,因為是按照自己指定的路徑安裝,是以需要添加環境變量。
echo "export PATH=$PATH:/usr/local/clang/bin" >> /etc/bashrc
. /etc/bashrc
安裝過程主要參考這幾篇文章:
http://clang.llvm.org/get_started.html
http://llvm.org/docs/GettingStarted.html#checkout
http://www.cnblogs.com/Frandy/archive/2012/10/20/llvm_clang_libcxx_cxx11.html
http://www.cnblogs.com/ralphjzhang/archive/2011/12/02/2272671.html
http://www.tuicool.com/articles/ZBveeu
BinBin Learns To Develop