一、安装依赖项
Ubuntu下安装如下依赖或工具
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build git python3 zlib1g-dev libncurses5-dev libssl-dev
build-essential
: 包含编译 C++ 源代码所需的基本工具。cmake
: 用于生成编译文件的构建工具。
Windows下需要推荐使用minGW编译,minGW中安装如下依赖库或工具
pacman -Syu
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-ninja
pacman -S git
pacman -S mingw-w64-x86_64-python
pacman -S mingw-w64-x86_64-zlib
pacman -S mingw-w64-x86_64-ncurses
pacman -S mingw-w64-x86_64-openssl
二、克隆 LLVM 源代码
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
三、创建build目录并进入配置构建项
mkdir build
cd build
cmake -G "Ninja" \
-DCMAKE_CXX_FLAGS="-frtti" \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD="X86" \
-DLLVM_ENABLE_RTTI=ON \
../llvm
note: 由于我需要使用clang的ast(抽象语法树)的功能,因此必须使能rtti模块,cmake中使能-DLLVM_ENABLE_RTTI=ON可能没有用,因此使用-DCMAKE_CXX_FLAGS="-frtti"来强制保证开启了rtti。
四、编译并安装
ninja -j$(nproc) // 其中nproc指定并行bian编译cpu数
sudo ninja install -j$(nproc)
五、验证安装
llvm-config --version
clang --version