Linux环境下LLVM 6.0 + clang安装步骤

2023-05-16

可以转载,请注明出处!

1.准备工作

首先确保你的Linux系统是可以联网的,我是win10环境下的VMware 15 + centos 7,这个应该没影响,之所以说,是因为我之前用的vm12,使用centos7老是出问题,换了15之后就好了。
在这里插入图片描述
安装总共需要三个tar包,将其全部拖入到Linux环境下。其中cfe-6.0.0.src.tar.xz是clang的源码,compiler-rt-6.0.0.src.tar.xz是动态测试工具,llvm-6.0.0.src.tar是llvm的源码,这三个包官网都有,如果不想找的话,从我下面这个盘里面下载也是OK的。

下载链接:https://pan.baidu.com/s/1pGTDJd7rGxD5vIxChNPP3Q
提取码:cbm1

1.1解压llvm-6.0.0.src.tar

在root权限的根目录下,创建一个名为llvmtest目录:
在这里插入图片描述
将llvm-6.0.0.src.tar移到llvmtest目录下,使用tar -xvf llvm-6.0.0.src.tar命令解压文件到当前目录,并将解压好的文件重命名为llvm:
在这里插入图片描述

1.2解压cfe-6.0.0.src.tar.xz

步骤1.1中被解压出来命名为llvm的文件下有一个tools目录,将cfe-6.0.0.src.tar.xz移到其中,使用tar -xvf cfe-6.0.0.src.tar.xz解压,并将解压后的文件重命名为clang:
在这里插入图片描述
在这里插入图片描述

1.3解压compiler-rt-6.0.0.src.tar.xz

步骤1.1中被解压出来命名为llvm的文件下有一个projects目录,将compiler-rt-6.0.0.src.tar.xz移动到其中,使用tar -xvf compiler-rt-6.0.0.src.tar.xz命令解压,并重命名为compiler-rt:
在这里插入图片描述

1.4编译安装

首先确保你的Linux中有安装cmake。输入cmake -version指令,查看你本机cmake的版本号,如果未出现版本号,直接跳到步骤3完成cmake的安装,然后再进行后续工作。我本机cmake安装的是3.15.1版本,已验证是可行的,如果你的当前cmake比这个版本低,建议安装3.15.1或者更高版本。
在这里插入图片描述

在步骤1.1中被解压出来命名为llvm的文件下新建一个名为llvm-build的目录,然后cd到该目录下,输入下面指令对llvm源码进行编译:

cmake -G "Unix Makefiles" -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_BUILD_TYPE=Release ../

编译完成后输入make install指令进行安装,这个过程比较久,可能要两三个小时;

至此环境已经搭建完成!

1.5环境检测

分别输入下面两条指令,如果出现图片中对应的信息,说明环境已安装成功:
llvm-config --version
clang --version
在这里插入图片描述

1.6用例测试

用C编写一个打印“hello word”的程序,程序名为hello.c,用clang进行编译。

hello.c内容:
在这里插入图片描述

clang hello.cclang hello.c -o hello.outclang -emit-llvm -c hello.c -o hello.bc指令编译,第一条编译完后会生成一个默认名为a.out的可执行文件,第二条会生成一个hello.out 可执行文件,第三条不会生成可执行文件,只将编译完的二进制文件存放在了hello.bc文件中:
在这里插入图片描述

使用上面第一条指令编译完成后会生成一个a.out的可执行文件,使用 ./a.out指令执行:
在这里插入图片描述

使用llvm-dis hello.bc –o hello.ll将hello.bc二进制文件转为llvm IR中间码:
在这里插入图片描述

2.gcc/g++安装

g++和gcc的安装可参考下面两个链接,先用第一链接中的安装方式,如果不可行,再用第二个链接中的方式。
https://blog.csdn.net/Betty2017/article/details/80953282
https://www.cnblogs.com/wanglijun/p/8605709.html

3.cmake安装

安装cmake要确保你本地Linux有安装gcc/g++。分别输入gcc --versiong++ --version指令,查看你本机gcc/g++的版本号,如果未出现版本号,直接跳到步骤2完成gcc/g++的安装。我本地安装的是4.8.5版本,已验证其是可行的,如果你的当前gcc/g++比这个版本低,建议安装4.8.5或者更高版本。
在这里插入图片描述
先在Linux环境下使用下面命令下载tar包:wget https://cmake.org/files/v3.15/cmake-3.15.1.tar.gz

然后参考下面链接完成安装即可:
https://www.cnblogs.com/cxscode/p/10980101.html

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

Linux环境下LLVM 6.0 + clang安装步骤 的相关文章

  • ROS学习【10】-----搭建Gazebo机器人物理仿真环境并展示空环境中的机器人

    ROS学习 搭建Gazebo机器人物理仿真环境并展示空环境中的机器人模型目录 一 运行Gazebo 查看是否能够正常打开程序1 新建一个终端 xff0c 运行Gazebo仿真软件2 应对Gazebo程序闪退的方法 二 搭建Gazebo机器人
  • 问题解决-----ROS中Gazebo学习的问题解决合集(初次运行黑屏、运行launch文件后闪退、黑屏;gazebo联合rviz出现process has died等的解决办法)

    问题解决 ROS中gazebo环境搭建学习的问题解决合集目录 一 初次运行Gazebo出现黑屏1 问题描述 xff1a 2 问题原因3 解决方法 二 编译gazebo的功能包出现编译错误1 问题描述2 问题原因3 解决方法 三 运行laun
  • TCP传输大文件(图片、文档)

    遇到TCP传输大文件问题 xff0c 主要是 xff08 1 xff09 传输快 xff0c 但拼接成的大文件数据错 xff08 2 xff09 加校验 xff0c 传输变慢 xff08 3 xff09 接收包数跟发送包数不对应 费了一段时
  • ROS学习【14】-----利用ROS中的导航框架(move_base,amcl),实现基于gazebo仿真机器人的自主导航

    64 TOC 上次的ROS学习 xff0c 我们通过SLAM框架下的gmapping及hector slam实现了手动控制我们Gzebo仿真机器人进行地图的规划 xff0c 并保存了相应的地图 xff0c 那么如何让自己人按照我们规划的路线
  • 抛出异常的简单处理

    span class token keyword function span span class token function func span span class token punctuation span span class
  • 进程切换过程

    在每个进程都有一个进程控制块 xff08 PCB xff09 进程主要分为 创建状态 xff0c 就绪状态 xff0c 运行状态 xff0c 阻塞状态 xff0c 结束态 PCB控制块是以链表方式存放 xff0c 就绪进程的PCB放置在同一
  • 第七篇(上),LQR工程化总结

    目录 一 引言 二 LQR 2 1 LQR的理解与实现 2 1 1 模型设计与实现 2 1 2 LQR工程实现步骤 2 2 参考资料 2 2 1 基础理论与模型的推导 2 2 2 Refer to Apollo 2 2 3 其它实例参考 2
  • STM32工程创建的快速方法

    1 Project gt New Project 2 打开新创建的工程的所在目录 xff0c 删除掉目录中的两个文件夹 xff0c 新创建4个文件夹 xff0c 分别是 xff1a USER CODE OBJ STM32F10 xFWLib
  • Ubuntu18.04下ROS的安装教程、rosdep init问题亲测解决方案

    一 确定自己的Ubuntu版本号 xff0c 并且安装正确的ros版本 lsb release a 查看ubuntu版本 二 更新源 sudo sh c 39 etc lsb release amp amp echo 34 deb http
  • MySQL相关面试题总结

    1 解释一下单列索引和联合索引 单列索引是指在表的某一列上创建索引 联合索引是在多个列上联合创建索引 单列索引可以出现在where条件的任何位置 而联合索引需要按照一定的顺序来写 在多条件查询的时候 联合索引的效率更高 我们联合索引也最多创
  • 修改firefox浏览器滚动条的样式

    最近做了一个网站的项目 xff0c 使用原生的滚动条 ie和谷歌都显示的好好的 xff0c 火狐的滚动条样式没有生效 原因 xff1a 火狐浏览器没有提供原生滚动条的方法和属性 后来浏览器升级之后提供了部分可以修改样式的属性 属性较多 xf
  • jetson nx ssd镜像克隆

    1 打开disk查看要克隆的ssd名称 2卸载ssd 制作镜像 sudo umount dev sdb1 sudo s sudo dd if 61 dev sdb1 conv 61 sync noerror bs 61 64k gzip c
  • Android 关于IPV6 DNS的问题

    目前在测试IPV6 DNS解析的时候发现一个问题 xff0c 这里记录一下 问题是 xff1a 当dhcpv6服务器分配的IPV6 dns是fe80类型的dns时 xff0c 无法发送dns请求 xff0c 抓包看不到有目标地址为fe80
  • PX4开发环境搭建

    PX4开发环境搭建 编译工具链的安装vscode 编译工具链的安装 下载ubuntu sh requirements txt wget https raw githubusercontent com PX4 Firmware master
  • TFmini在nora+(px4)上的使用和验证

    目标 xff1a 使用tfmini完成定高实验 设置 xff1a 1 sens tfmini cfg 设置为telem2 xff08 可修改为其他 xff0c 保证硬件连线一致 xff0c 1一般是无线数传所以没改过去 其他的对应在官网里有
  • ROS | Realsense中的IMU解算orientation

    文章目录 概述 一 定义介绍 二 操作教程 一 下载并编译imu tools功能包 1 创建工作空间并初始化 2 下载imu tools并编译 二 修改配置 1 修改imu tools源码 2 修改launch文件 3 启动解算 概述 本文
  • prometheus服务监控之mysql监控

    文章目录 上传解压安装mysqld exporter安装mariadb在数据库里创建mysql账号用户收集数据在mysql exporter中设置mysql配置信息启动mysql exporter配置prometheus拉取mysql节点信
  • HTTP请求头Authorization

    今天部署了一个Authorization项目 xff0c 由于改了auth服务器客户端id和密码 xff0c 而前端请求header没有修改 xff0c 登录时一直弹框要求输入用户名和密码 xff0c 输入后却无效 xff0c 只好改前端代
  • c语言编程规范第三部分

    3 头文件应向稳定的方向包含 头文件的包含关系是一种依赖 xff0c 一般来说 xff0c 应当让不稳定的模块依赖稳定的模块 xff0c 从而当不稳定的模块发生变化时 xff0c 不会影响 xff08 编译 xff09 稳定的模块 就我们的
  • 看完《C++ primer》后,我都收获了什么?

    文章目录 1 语言只是一个工具2 光学会一门语言还不够3 结语 迫于读研和未来就业的压力 xff0c 我研一上自学了C 43 43 的这门语言 xff0c 自我感觉比较认真的看完了 C 43 43 primer 这本书的大部分章节 xff0

随机推荐

  • Ubuntu18.04 ROS Melodic版本安装gazebo_ros_pkgs包

    疫情期间宅在家没法做实验 xff0c 只能上手gazebo做仿真 xff0c 导入实验室机器人的相关文件后 xff0c 打算看看效果 xff0c 运行代码 roslaunch probot gazebo probot anno gazebo
  • vim如何批量注释

    1 ctrl 43 v 进入 2 按箭头 选中要注释的首行 3 按下大写 i 进入插入模式 4输入 按esc 就可以看到如下内容
  • 还弄不明白【委托和事件】么?看这一篇就足够了!!!

    这两个概念长时间不用了 xff0c 今天看到CAD二次开发中用到了自定义事件 xff0c 有点迷糊了 xff0c 索性再整理一下加深印象 xff01 一说到委托和事件 xff0c 他们总是绑定在一起的不可分割 xff01 可能你会说啊 xf
  • 三种简单排序(冒泡、插入、选择)的比较和图解

    冒泡排序 这种排序方式是最容易理解的 xff0c 主体思想就是 xff1a 指针重复地走访过要排序的数列 xff0c 一次比较两个元素 xff0c 如果他们的顺序错误就把他们交换过来 走访数列的工作是重复地进行直到没有再需要交换 xff0c
  • ModuleNotFoundError: No module named 'XXX'的解决办法

    类似问题一 ModuleNotFoundError No module named 39 captcha 39 pycharm打开的项目 xff0c 在虚拟环境里通过终端命令python manage py runserver运行pytho
  • 微信小程序实现搜索功能以及效果(超详细)

    我们先来看一下实现哪些功能 1 搜索历史记录以及清空历史记录 2 热门搜索推荐以及更新推荐内容 3 根据输入框输入的内容来自动搜索相关查询 后台逻辑是模糊查询 后台就先不扯了 这里我用的是自己定义的虚拟数据 暂时没用后台接口 可能有点问题
  • 微信小程序实现收货地址城市选择效果(添加收货地址)

    先来张效果图 这里主要是城市选择效果 请忽视其他 不要吐槽 谢谢 接下来看一下代码吧 wxml lt pages my my add address index wxml gt lt view class 61 34 redact addr
  • uni-app实现商城多商家购物车功能(超详细, 附带源码)

    我们先来看一下效果 有什么不懂可以直接下方留言 先来看代码 lt template gt lt view class 61 34 cart 34 gt lt 购物车为空 S gt lt view v if 61 34 cartList le
  • 微信小程序web-view的使用教程

    最近公司有需求 xff0c 需要点击小程序首页banner xff0c 跳转到别人的h5页面 首先是域名的问题 xff1a 步骤 xff1a 先登录小程序开发平台 xff0c 将页面需要跳转的域名写上去 xff0c 注意了 xff0c 域名
  • uni-app实现上传图片裁剪效果(附源码)

    我们先来看一下效果 封装一个组件在components下创建一个 文件夹随意命名 xff0c 这里我是uni img cropper uni img cropper vue lt template gt lt view class 61 3
  • js 一维数组和二维数组实现足迹、浏览记录等场景

    再开发过程中 xff0c 再没有接口提供的情况下来实现浏览记录或者搜索记录等场景 我们可以利用本地缓存实现 xff0c 废话不多说 xff0c 直接上代码 xff1a 多维数组 64 param Array arr 数组 64 param
  • Markdown使用(超详细)

    xff08 HBuilderX xff09 掌握md及HBuilderX对md的强大支持 如果没有点右键设置自动换行 xff0c 可按Alt 43 滚轮横向滚动查看 很多人只把markdown用于网络文章发表 xff0c 这糟蹋了markd
  • 宫格导航 (自定义更灵活,超详细)

    先来看一下效果 调用方法 lt 页面调用 gt lt nav grid list 61 34 menu 34 64 click 61 34 34 gt lt nav grid gt 数据 export default data return
  • Firefox和Chromedriver驱动下载及安装步骤

    Mozilla Firefox Mozilla Firefox 中文名称 34 火狐 34 是由一个自由及开放源代码的网页浏览器 使用Gecko排版引擎 支持多种操作系统 如 Windows Mac OS X 及GNU Linux等 该浏览
  • 流媒体选择Nginx是福还是祸?

    流媒体选择Nginx是福还是祸 xff1f CDN xff0c 视频云 xff0c 已经 僧多粥少 视频直播的持续升温 xff0c 无意间也让带宽生意的争夺变得异常残酷 一时间 xff0c 各种云计算 CDN 视频云提供商都在视频尤其是直播
  • xpath去除换行\空格

    使用xpath获取文本内容 有空格或者换行就用normalize space 方法 例 intro li 61 div xpath 39 normalize space div 64 class 61 34 bookinfo 34 p te
  • Java 静态域和静态方法

    main方法都被标记为static修饰符 xff0c 本文讨论一下该修饰符含义 静态域和静态方法 一 静态域静态常量 二 静态方法三 工厂方法 一 静态域 若把域定义为static xff0c 则每个类中只有一个这样的域 而每一个对象对于所
  • Linux下传感器驱动。rk3399

    基于rk3399的Linux下的陀螺仪mpu9250传感器驱动 mpu6050 bh1750传感器 xff0c sht30 35温湿度传感器驱动 已经成功移植 xff0c 通过iic驱动获取到数据 Linux驱动开发
  • DaSaimRPN代码运行记录

    demo py xff1a 下载模型 SiamRPNVOT model 放入 code 文件夹即可 test otb py xff1a 在网上下载 OTB2015 数据集放入 data 文件夹中 更改 parser 参数 dataset 运
  • Linux环境下LLVM 6.0 + clang安装步骤

    可以转载 xff0c 请注明出处 xff01 1 准备工作 首先确保你的Linux系统是可以联网的 xff0c 我是win10环境下的VMware 15 43 centos 7 xff0c 这个应该没影响 xff0c 之所以说 xff0c