LLVM是一款类似于GCC的编译器,有关这两款编译器的区别联系参考:详解三大编译器:gcc、llvm 和 clang - 知乎 (zhihu.com)
网上构建教程很多,官网也有相应教程,构建之前确保cmake版本可用,构建步骤不外乎:
从github下载源码:https://github.com/llvm/llvm-project
$ git clone https://github.com/llvm/llvm-projec
如果需要切换到特定版本
git clone -b release/xxx
创建构建文件夹并进入该文件夹利用cmake构建,名字随便取
mkdir build_llvm
cd build_llvm
cmake构建
cmake -DCMAKE_BUILD_TYPE=release -DLLVM_TARGETS_TO_BUILD="AArch64" ../llvm
此步很关键,camke的参数控制决定构建的llvm质量高低,关于如何构建LLVM及cmake的参数可以查阅LLVM自带的英文文档:llvm-project\llvm\docs\GettingStarted.rst或者参考:(23条消息) 使用 CMake 构建 LLVM_梦在哪里的博客-CSDN博客_llvm cmake
参考的构建选项:
-DCMAKE_INSTALL_PREFIX= \安装路径
-DCMAKE_BUILD_TYPE= \构建的LLVM的类型,release,debug常用
-DCMAKE_C_COMPILER= \使用的C编译器的路径
-DCMAKE_CXX_COMPILER= \使用的C++编译器的路径
-DLLVM_TARGETS_TO_BUILD=$TARGET \目标架构
-DLLVM_ENABLE_CLASSIC_FLANG=ON \编译的LLVM可以编译fortran语言
-DFLANG_BUILD_NEW_DRIVER=OFF \控制flang编译器不生成新的驱动
-DLLVM_ENABLE_PROJECTS="clang;openmp;compiler-rt;lld" \除了LLVM外还需编译的子项目
-DBUILD_SHARED_LIBS=ON
-DCMAKE_EXPORT_COMPILE_COMMANDS=1 \开启可生成文件compile_commands.json,包含所有编译单元所执行的指令。可不加
编译LLVM
make -j32
j后面的数字是你系统可支持的线程数,线程越大,编译越快
安装LLVM
make install
安装目录可通过编译cmake_install.cmake中的CMAKE_INSTALL_PREFIX变量更改,如果要安装在use/bin下要提供sudo权限。