在构建LLVM和Clang时,通常会在LLVM源代码目录之外创建一个单独的构建目录。这是为了保持源代码目录的整洁,并且可以更轻松地管理不同的构建配置。
以下是一个常见的目录结构和步骤:
目录结构
假设您的工作目录是~/llvm-project
,目录结构如下:
~/llvm-project/
llvm-11.0.0.src/
build/
详细步骤
- 创建工作目录(如果还没有):
mkdir -p ~/llvm-project
cd ~/llvm-project
- 下载和解压源代码:
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/llvm-11.0.0.src.tar.xz
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/clang-11.0.0.src.tar.xz
tar -xf llvm-11.0.0.src.tar.xz
tar -xf clang-11.0.0.src.tar.xz
- 将Clang源代码移动到LLVM源代码的工具目录中:
mv clang-11.0.0.src llvm-11.0.0.src/tools/clang
- 创建构建目录:
mkdir build
cd build
- 运行CMake配置:
cmake -G "Unix Makefiles" ../llvm-11.0.0.src \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/clang-11.0 \
-DLLVM_TARGETS_TO_BUILD=X86 \
-DLLVM_ENABLE_RTTI=ON
- 编译并安装Clang:
make -j$(nproc)
sudo make install
- 配置环境变量:
echo "export PATH=/usr/local/clang-11.0/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
- 验证安装:
clang --version
目录结构总结
最终,您的目录结构应该类似于以下内容:
~/llvm-project/
llvm-11.0.0.src/
tools/
clang/
build/
通过这些步骤,您可以在~/llvm-project/build
目录中构建LLVM和Clang,而不会干扰源代码目录。这种方法使得管理和切换不同的构建配置变得更加容易。