本教程使用的操作系统是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

mkdir -p tools/lld

mkdir -p tools/lldb

mkdir -p tools/polly

mkdir -p projects/compiler-rt

mkdir -p projects/libcxx

mkdir -p projects/libcxxabi

mkdir -p projects/libunwind

mkdir -p projects/openmp

开始解压所有的子项目:

tar xf ../cfe-8.0.0.src.tar.xz -C tools/clang --strip-components=1

tar xf ../clang-tools-extra-8.0.0.src.tar.xz -C tools/clang/tools/extra --strip-components=1

tar xf ../lld-8.0.0.src.tar.xz -C tools/lld --strip-components=1

tar xf ../lldb-8.0.0.src.tar.xz -C tools/lldb --strip-components=1

tar xf ../polly-8.0.0.src.tar.xz -C tools/polly --strip-components=1

tar xf ../compiler-rt-8.0.0.src.tar.xz -C projects/compiler-rt --strip-components=1

tar xf ../libcxx-8.0.0.src.tar.xz -C projects/libcxx --strip-components=1

tar xf ../libcxxabi-8.0.0.src.tar.xz -C projects/libcxxabi --strip-components=1

tar xf ../libunwind-8.0.0.src.tar.xz -C projects/libunwind --strip-components=1

tar xf ../openmp-8.0.0.src.tar.xz -C projects/openmp --strip-components=1

4、编译LLVM/Clang等全部源代码。

切换到终端,执行以下命令:

cd ..

mkdir build

cd build

sudo mkdir /xxx

sudo cmake -DCMAKE_INSTALL_PREFIX=/xxx ../llvm-8.0.0.src(这里的xxx是你想要安装LLVM的目录,名字可以随便取,如果不加-DCMAKE_INSTALL_PREFIX参数的话默认应该是安装到/usr里)

sudo cmake --build .(开始编译。编译过程很长,需要几个小时,具体时间和CPU性能有关)

sudo cmake --build . --target install(安装LLVM/Clang等所有已编译好的软件。安装目录在上面指定了)

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

  1. centos llvm安装_在CentOS上编译安装llvm-3.8.1详细教程

    在CentOS上编译安装llvm-3.8.1详细教程 2020/1/11  18:12 1682次 注:CentOS版本是6.8,6.x版本的操作类似 安装需求: [list] [*]Cmake: 3 ...

  2. mingw linux socket,MingW上编译WinSocket程序undefined reference to `WSAStartup@8'报错的解决办法...

    在Mingw stdio上编译Windows Socket程序经常出现这样的错误 undefined reference to `inet_addr@4' undefined reference to ...

  3. 树莓派指定python2编译_在树莓派上编译安装ROS2

    最新编译方式已经修改,请参考官网最新文档: ------------------------------------下文已经过时 仅供参考------------------------------- ...

  4. php在windows编译_在Windows上编译PHP

    php在windows编译 Compiling PHP from source code is more commonly done on Unix-type systems. Those worki ...

  5. linux 64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32

    -m32选项将int,long和指针设置为32位,并生成在任何i386系统上运行的代码. -m64选项将int设置为32位和long,指针设置为64位,并为AMD的x86-64体系结构生成代码. -m ...

  6. php 7编译安装mysql5.6_CentOS7上编译安装MySQL5.6.23_MySQL

    1.下载源码 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz 2.解压 tar zxvf mysql-5.6 ...

  7. linux acl库编译与使用,acl 的编译与使用

    acl 下其实有四个库:lib_acl (基础库).lib_protocol(http 和 icmp 协议库).lib_acl_cpp(封装了 lib_acl 和 lib_protocol 两个 C ...

  8. 其他笔记 - Mono for Windows 跨平台 Runtime 在Win10上编译和安装

    目录 在Windows上编译Mono 安装环境 下载Mono源码 预配置编译安装说明 详细的编译说明 启用BTLS作为Windows构建的加密后端 为Windows版本启用LLVM 使用monolit ...

  9. linux2.6 gcc 4.8.2,在Red Hat Enterprise linux 6.5上安装GCC 4.8.2

    我是Red Hat Enterprise linux的新手.我在Red Hat Enterprise Linux 6.5上编译gcc 4.8.2时面临问题;我从GNU webite中获取源代码.我按照 ...

  10. 在Linux上编译LLVM/Clang 8.0.0等全部源代码

    2019独角兽企业重金招聘Python工程师标准>>> 本教程使用的操作系统是Ubuntu Linux 18.04.2 LTS版本,编译器是GCC 6.5.0(不用新版的原因是某些代 ...

最新文章

  1. python自动生成鸡汤文_20行python代码实现鸡汤智能生成器
  2. Mac 技术篇-chrome浏览器启用flash插件最强攻略
  3. 【pmcaff】页面停留时间和网站停留时间详解
  4. Java程序利用POJ读写Excel的.xls或.xlsx文件所需的3个jar包
  5. 【牛客 - 303B第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Fibonacci and Counting(Fib数性质,gcd辗转相除法性质)
  6. mysql 去重复屈居_mysql去重复关键字distinct的用法
  7. 【论文写作】毕业论文怎么写?
  8. python经典程序实例-Python简单基础小程序的实例代码
  9. 金融评分卡项目—5.神经网络模型在银行业客户流失预警模型中的应用—MLP
  10. 7-2 人民币兑换 (15 分)
  11. poj3263 Tallest Cow 题解报告
  12. GitHub Windows 客户端使用教程
  13. 一篇文章带你搞懂DEX文件的结构
  14. Augustus:真核生物基因结构预测软件-安装篇
  15. Windows找回磁盘被病毒感染后隐藏的文件
  16. 最新免费自建APP平台哪个好?手把手教你制作APP
  17. 学会这5个拍摄技巧,能让你的视频更好看
  18. 梦幻西游藏宝阁不显示服务器,梦幻西游玩转藏宝阁 全服搜索功能体验 17173.com网络游戏:《梦幻西游》专区...
  19. LENOVO服务器批量升级BMC固件
  20. 使用final来修饰方法

热门文章

  1. java8中方法区的内存大小如何设置_从Java8升级到Java11
  2. cache failed module status_Flutter混编之路——iOS踩坑记录
  3. mysql结果集相减_MySQL_(Java)使用JDBC向数据库发起查询请求
  4. python读取数据库文件的扩展名_Python读取sqlite数据库文件的方法分析
  5. python根据数据生成图像_从三个numpy数组生成图像数据
  6. c++分治法求最大最小值实现_最优化计算与matlab实现(12)——非线性最小二乘优化问题——G-N法...
  7. django国际化与html语言,Django 国际化
  8. 【Visual C++】游戏开发笔记十九 DirectX与OpenGL的博弈
  9. /dev/fb0入门练习
  10. React开发(149):ant design控制是否必填