1. 安裝libffi(下載地址:https://sourceware.org/libffi/)
./configure
make
sudo make install
2. 可替換make的ninja(可選)
sudo apt-get install ninja-build
3. 下載llvmmkdir clang
cd clang
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
4. 下載compiler-rt、libcxx和libcxxabi
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
svn co http://llvm.org/svn/llvm-project/libcxx/trunk/ libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk/ libcxxabi
5. 下載clang
cd ../tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
6. 下載clang的extra
cd clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk/ extra
7. 下載lld並修正一處源碼使其可以編譯
cd ..
svn co http://llvm.org/svn/llvm-project/lld/trunk/ lld
打開lld裏的COFF/PDB.cpp,將GlobalTypeHashAlg::SHA1_8替換爲GlobalTypeHashAlg::SHA1(去掉“_8”)。
8. 返回到llvm文件夾的上級目錄:
mkdir build
cd build
9.1 cmake編譯法(我自己的安裝路徑爲/opt/clang/install)
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:String=Release -DCMAKE_INSTALL_PREFIX=/opt/clang/install -DLLVM_ENABLE_FFI=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -Wno-dev ../llvm/
make -j4
make install
9.2 ninja編譯法(我自己的安裝路徑爲/opt/clang/install)
cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/opt/clang/install -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_FFI=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -Wno-dev ../llvm
ninja -j4
ninja install
10. 添加path及ld_library_path即可