当前位置: 首页 > 工具软件 > llvm-mctoll > 使用案例 >

LLVM第一章:构建LLVM

仇浩旷
2023-12-01

LLVM是一款类似于GCC的编译器,有关这两款编译器的区别联系参考:详解三大编译器:gcc、llvm 和 clang - 知乎 (zhihu.com)

网上构建教程很多,官网也有相应教程,构建之前确保cmake版本可用,构建步骤不外乎:

  1. 从github下载源码:https://github.com/llvm/llvm-project

$ git clone https://github.com/llvm/llvm-projec
  1. 如果需要切换到特定版本

git clone -b release/xxx
  1. 创建构建文件夹并进入该文件夹利用cmake构建,名字随便取

mkdir build_llvm
cd build_llvm
  1. 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,包含所有编译单元所执行的指令。可不加


  1. 编译LLVM

make -j32

j后面的数字是你系统可支持的线程数,线程越大,编译越快

  1. 安装LLVM

make install

安装目录可通过编译cmake_install.cmake中的CMAKE_INSTALL_PREFIX变量更改,如果要安装在use/bin下要提供sudo权限。

 类似资料: