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

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP