llvm实践日志(1)---安装llvm

2024-05-27 00:36
文章标签 安装 实践 日志 llvm

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006030

相关文章

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略