1. 安装libffi(下载地址:https://sourceware.org/libffi/)
./configure
make
sudo make install
2. 可替换make的ninja(可选)
sudo apt-get install ninja-build
3. 下载llvm
mkdir 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即可