llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码

2023-11-03

本教程使用的操作系统是Ubuntu Linux 18.04.2 LTS版本,编译器是GCC 6.5.0(不用新版的原因是某些代码不支持更高的版本),要编译的LLVM源代码是8.0.0。

1、安装必要的软件。它们是:build-essential/gcc-6/g++-6/cmake/swig/python-swigpk/libxml2/libxml2-dev/libncurse5/libncurse-dev/libedit-dev/libpython-dev,还可以选择安装doxygen/ocaml/python-sphinx/git/libopenmpi-dev/libelf-dev/libffi-dev/python-pycuda。

打开终端,输入以下命令:

sudo apt-get install build-essential gcc-6 g++-6 cmake swig python-swiglpk libxml2 libxml2-dev libncurses5 libncurses5-dev libedit-dev libpython-dev

另外还要安装z3,安装方法看这里。

切换gcc/g++版本的方法看这里。

2、下载LLVM/Clang等全部源代码。(下载地址)

3、解压LLVM/Clang等全部源代码(不包括test-suite)。

首先解压llvm主程序源代码:

tar xf llvm-8.0.0.src.tar.xz

然后进入llvm主目录:

cd llvm-8.0.0.src

创建几个子目录用于存放LLVM子项目的源代码:

mkdir -p tools/clang

mkdir -p tools/clang/tools/extra

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码 的相关文章

  • 百度超详细面经(附答案)

    点击上方蓝字关注我们吧 百度 一面 上来照例还是问了问项目 答 我介绍了自己的项目背景 项目的整个流程 由于是一个多人合作的项目 还介绍了自己负责项目的哪个模块 以及这个模块如何实现的 我感觉我个人说话语速比较快 建议大家尽量语速慢一些 可
  • 阿里P8架构师(花名:霍州)Java程序性能优化“学习日记”

    Java程序性能优化是一门 优化的技术 这门功课值得我们一直去探索 本篇我们会系统的介绍性能的基本概念 两个重要的定律 木桶原理和 Amdahl 定律 以及系统调优的一般过程与注意事项 接下来我们将会学习性能相关的设计模式 组件以及有助于改
  • 折磨我两天的c3p0线程死锁问题终于解决了,其原因竟然是这个!

    折磨我两天的c3p0线程死锁问题终于解决了 其原因竟然是这个 com mchange v2 async ThreadPoolAsynchronousRunner DeadlockDetector 177bb7a APPARENT DEADL
  • Qt网络编程:QNetworkReply

    一 描述 QNetworkReply 类封装了使用 QNetworkAccessManager 发布的请求相关的回复信息 QNetworkReply 是 QIODevice的子类 这意味着一旦从对象中读取数据 它就不再由设备保留 因此 如果
  • Flutter SDK安装

    SDK下载安装 Flutter集成了Dart 因此不需要单独安装dart sdk Flutter的SDK可以从官网下载 https flutter io docs development tools sdk archive tab wind
  • PHP 魔术方法(1)

    PHP 魔术方法 文章目录 PHP 魔术方法 概述 1 构造函数和析构函数 2 sleep 3 wakeup 概述 PHP 魔术方法 一个预定义好的 在特定情况下自动触发的行为方法 魔术方法相关进制 触发时机 功能 参数 返回指 1 构造函
  • 生命在于学习——SQL注入绕过

    一 SQL注入绕过介绍 SQL注入绕过技术已经是一个老生常淡的内容了 防注入可以使用某些云waf加速乐等安全产品 这些产品会自带waf属性拦截和抵御SQL注入 也有一些产品会在服务器里安装软件 例如iis安全狗 d盾 还有就是在程序理论对输
  • C语言奇奇怪怪表达式‘abcd‘,及操作符详解

    前言 回顾操作符和一些表达式方面的知识 表达式及操作符 前言 算术操作符 位操作符 gt gt lt lt gt gt 算数右移 逻辑右移 lt lt 小结 有0则为0 两个1才为1 有1则为1 两个0才为0 按位取反 符号位要参与吗 要参
  • OpenStack--部署块存储cinder

    通过 cinder 使用 lvm 卷提供后端存储 官方部署文档 https docs openstack org ocata zh CN install guide rdo cinder html 1 数据库准备 1 创建数据库并授权 ro
  • 四 通用目标之make modules的执行过程分析

    搜索顶层makefile发现会有两个modules目标 它们的定义分别如图3 13和3 14 查看代码发现它们分别位于ifeq KBUILD EXTMOD 和else的条件中 KBUILD EXTMOD的定义可以参考图2 5 即若编译的为外
  • 小学六年级计算机知识点总结,【小学六年级数学总复习知识点归纳】

    一 复习内容 1 分数乘除法 分数乘 除法属于分数的基本知识和技能 而且两者关系密切 教材将这两部分内容集中安排 教材首先通过一组题目 强调分数乘除法的关系 即分数除法是分数乘法的逆运算 同时对分数乘除法的计算方法进行了复习 比的相关概念
  • C++第七次实验——作业

    项目1 include
  • Qt多线程http下载器之二:仿迅雷新建下载任务

    一 效果 下图是迅雷9的新建任务界面 目前最新的版本是迅雷11 迅雷9已无法准确检测出文件大小 但任然能正常下载 个人觉得迅雷9的新建任务界面更美观 故仿之 下图是我用Qt实现的效果 功能和迅雷9类似 复制下载url到输入框 迅雷能够自动解
  • JavaWeb基础6——Request,Response,JSP&MVC

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 一 Request Response概述 二 R
  • MsSqlServer配置管理器TCP/IP属性

    TCP IP 属性 IP 地址 选项卡 使用 TCP IP 属性 IP 地址 选项卡 对话框 可以配置特定 IP 地址的 TCP IP 协议选项 只有选中 IP All 才能一次配置所有地址的 TCP 动态端口 和 TCP 端口 更改在重启
  • OpenCV使用imread读取图片失败解决方案

    使用一下代码读取图像 出现 WARN 0 1 635 global D a opencv python opencv python opencv modules imgcodecs src loadsave cpp 239 cv findD
  • pymongo.errors.ConfigurationError: All nameservers failed to answer the query _mongodb

    pycharm一直报错 安装了最新版的python也没用 我现在用的是python3 6版本进行代码运行 代码如下 运行就报错 反反复复找了很久终于解决 需要在导入pymongo之前导入此代码 import dns resolver dns
  • 51个常用免费工具列表

    2023 年可用于查找 分析和研究加密货币的 51 个免费网站和指标 一 发现新代币和项目 https coinmarketcap com ico calendar 查市值 即将推出的 ICO 和 IDO 的信息 https coinbra
  • linux整理-GUN讲解, GPL LGPL BSD等各种开源协议许可证的区分

    什么是GUN GNU 1983年 Richard Stallman 理查德 马修 斯托曼 创立GNU计划 一套完全自由的操作系统 其内容软件完全以GPL方式发布 这个操作系统是GNU计划的主要目标 发展出一套完整的开放源代码操作系统来取代U

随机推荐

  • Linux 内核ethtool框架新增刷网卡firmware功能

    原文地址 http blog csdn net macrocrazier article details 6340452 现在的网卡 尤其是智能网卡 高速网卡 硬件性能越来越强大 承载的功能也越来越多 开发者对网卡内部功能的增加或修改 对已
  • openwrt开发使用-增加启动脚本

    前言 在使用openwrt时候我们会遇到增加自定义的开机启动任务活脚本 今天给大家分享一下openwrt中设置一个开机启动脚本的操作 作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me o
  • AI 智能对话 - 基于 ChatGLM2-6B 训练对话知识库

    前情提要 怎么将 AI 应用到工作中呢 比如让 AI 帮忙写代码 自己通过工程上的思维将代码整合排版 我挺烦什么代码逻辑严谨性的问题 但是我又不得不承认这样的好处 我们要开始将角色转换出来 不应该是一个工具人 而成为决策者 这是从 AI 爆
  • flutter使用:barcode_scan出现注册清单问题

    问题 使用出现activity是否有注册到清单文件问题 如 android content ActivityNotFoundException Unable to find explicit activity class com met m
  • Unity中触摸和鼠标操作的几个问题

    关键点1 在unity中touch事件同时也会触发GetMouseButton事件 有时候可能会给你带来方便 但是如果没有意识到这个问题的话 也很可能给你带来很大的麻烦 关键点2 触摸操作也可以使用Input GetAxis Mouse X
  • IGH_Master主站配置驱动伺服电机和变频器总结

    IGH Master主站配置驱动伺服电机和变频器总结 Ethercat是倍福公司提出的一种工业现场总线协议 具有很好的实时性 IGH是一种开源的Ethercat主站实现协议 本文总结了一下使用IGH Master驱动伺服电机和变频器的经验
  • 备战数学建模44-聚类模型(攻坚站8)

    物以类聚 人以群分 所谓的聚类 就是将样本划分为由类似的对象组成的多个类的过程 聚类后 我们可以更加准确的在每个类中单独使用统计模型进行估计 分析或预测 也可以探究不同类之间的相关性和主要差异 聚类和上一讲分类的区别 分类是已知类别的 聚类
  • Flutter-(八)实现-View-的移动拖拽

    先来看效果 第一步 在main方法中用MaterialApp和Scaffold作为应用主框架 这里我就不详细展开说明了 这样做主要是为了显示效果更好 你可以使用你熟悉的Widget控件完成 void main runApp Material
  • 【H5】标签class类名属性的动态修改方法:

    H5 标签class类名属性的动态修改方法 box classList add className 添加类名 box classList remove className 删除属性 box classList toggle classNam
  • LevelDB源码解析(2) SkipList(跳跃表)

    你也可以通过我的独立博客 www huliujia com 获取本篇文章 背景 SkipList是LevelDB的MemTable使用的底层存储结构 LevelDB实现了一个支持泛型的跳跃表 本文不会具体介绍跳跃表的数据结构 如果读者不了解
  • C语言中字符数组只能存放字符串?字符数组和字符串的唯一区别?

    C语言中字符数组只能存放字符串 不是的 C语言中字符数组既可以保存字符 又可以保存字符串 字符数组本意就是是指用来存放字符数据的数组 字符数组的元素是字符类型的 字符数组用于存放字符或字符串 C语言中字符数组的一般形式为 char 数组名
  • 形容词变副词

    1 辅音 y 改y为i ly happy happily y发ai音直接加ly dry dryly 2 元音 e 去e ly ture turly due duly nice nicely wise wisely 3 le去e y poss
  • 笔试

    文章目录 前言 38 FIFO的深度计算问题 1 情况1 fa gt fb 且在读和写中都没有空闲周期 2 情况2 fa gt fb 两个连续的读写之间有一个时钟周期延迟 3 情况3 fa gt fb 在读和写中都有空闲周期 4 情况4 f
  • 以字符串形式读取github上.json文件

    如下 https github com hpu spring87 ebooks blob master update json 如果直接用httpclient读取该URL地址 得到结果是这样的
  • Java JFrame常用的布局

    setLayout 布局对象 声明布局格式的方式 如 setLayout new FlowLayout 1 FlowLayout布局 FlowLayout布局是JPanel 的默认布局 组建按照加入的先后顺序从左到右排列 一行排满之后就转到
  • 二进制应用

    一 什么是二进制 逢二进一的计数规则 规律 数字 0 1 进位基权 2 权 8 4 2 1 基数的幂次 二 为什么要用二进制 成本最优的解决方案 三 如何用二进制 3 1二进制与十进制的转换 3 1 1 十进制转二进制 方法为 十进制数除2
  • 写之前的项目关于使用git remote -v 找不到项目地址的解决方案

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 报错解析 1 报错内容 2 报错翻译 3 报错解析 1 使用git branch来查看git仓库有几个分支 2 使用git remote v 3 查看根目录的g
  • Wireshark 实验

    Wireshark 实验 Wireshark 实验 数据链路层 实作一 熟悉 Ethernet 帧结构 实作二 了解子网内 外通信时的 MAC 地址 实作三 掌握 ARP 解析过程 网络层 实作一 熟悉 IP 包结构 实作二 IP 包的分段
  • matlab arma 仿真,基于Matlab的ARMA模型时间序列分析法仿真

    自适应滤波器设计等等 基于Matlab的ARMA模型时间序列分析法仿真 ARMA模型时间序列分析法简称为时序分析法 是一种利用参数模型对有序随机振动响应数据进行处理 从而进行模态参数识别的方法 参数模型包括AR自回归模型 MA滑动平均模型和
  • llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码

    本教程使用的操作系统是Ubuntu Linux 18 04 2 LTS版本 编译器是GCC 6 5 0 不用新版的原因是某些代码不支持更高的版本 要编译的LLVM源代码是8 0 0 1 安装必要的软件 它们是 build essential