本文主要是介绍llvm实践日志(1)---安装llvm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考了官方教程:Getting Started with the LLVM System — LLVM 19.0.0git documentation
首先从github拷贝一份源码,使用了官方推荐的方法:
git clone --depth 1 https://github.com/llvm/llvm-project.git
我的系统是ubuntu22,安装过程中需要使用到cmake、make、gcc、g++等工具,提前安装一下
sudo apt update
sudo apt upgrade
sudo apt install cmake ninja-build gcc g++
具体需要安装哪些工具,可以更具cmake时的提示,按需安装。
在llvm-project根目录下执行cmake构建ninja工程
cmake -S llvm -B build -G Ninja -DLLVM_PARALLEL_LINK_JOBS=1 \
-DCMAKE_BUILD_TYPE=Debug -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_USE_SPLIT_DWARF=ON \
-DLLVM_ENABLE_PROJECTS="clang;lld;mlir" -DLLVM_BUILD_EXAMPLES=ON
cmake用到的几个参数说明如下:
-S 源代码路径
-B 编译路径
-G 目标工程类型,可选的有ninja、makefile、VS、XCode等,在Linux下面ninja比makefile快
-DLLVM_PARALLEL_LINK_JOBS 设置链接时使用的进程数,该参数只对ninja有效,链接时内存需求大,在内存有限的情况下可限制同时进行链接的进程数量,避免内存不足
-DCMAKE_BUILD_TYPE 设置Dbug/Release,对于编译器开发,选择Debug,方便调试编译器
-DLLVM_OPTIMIZED_TABLEGEN=ON 使用TableGen优化器,提升编译效率
-DLLVM_USE_SPLIT_DWARF=ON 以DWARF文件格式存储调试信息,可大大提高编译效率
-DLLVM_ENABLE_PROJECTS 设置llvm附带的子工程,比如clang、lld、mlir等,也就是说,默认只会编译llvm核心,如果要用到其他组件,需要在这边设置
-DLLVM_BUILD_EXAMPLES=ON 编译示例,方便学习
使用ninja编译
ninja -C build
安装
ninja -C build install
总结一下,下载编译步骤比较常规明了,需要注意的是内存大小和硬盘空间。
如果要编译带调试信息的clang,推荐内存是32GB,内存不足可以使用swap空间不足。
硬盘空间需求量也很大,以编译Debug版本llvm、clang、lld、mlir为例,build目录大小大约200GB,磁盘空间使用量还是很大的,编译之前需要准备足够的磁盘空间。
这篇关于llvm实践日志(1)---安装llvm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!