在Linux上编译LLVM/Clang 8.0.0等全部源代码
2019独角兽企业重金招聘Python工程师标准>>>
本教程使用的操作系统是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等所有已编译好的软件。安装目录在上面指定了)
转载于:https://my.oschina.net/u/943779/blog/3025984
在Linux上编译LLVM/Clang 8.0.0等全部源代码相关推荐
- llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码
本教程使用的操作系统是Ubuntu Linux 18.04.2 LTS版本,编译器是GCC 6.5.0(不用新版的原因是某些代码不支持更高的版本),要编译的LLVM源代码是8.0.0. 1.安装必要的 ...
- java调用clang编译的so_在Linux上编译LLVM/Clang等全部源代码
本教程使用的操作系统是Ubuntu Linux 18.04 LTS版本,编译器是LLVM/Clang 6.0,要编译的LLVM源代码是6.0.1. 1.安装必要的软件.它们是:cmake/swig/p ...
- Linux上编译并配置opencv-3.3.0过程
1.下载opoencv包 ,地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/ 2.解压opoencv包 unzi ...
- RH系列linux上编译android2.3(gingerbread)
在RH系列linux上编译android2.3(gingerbread)的过程如下: 官方源码及ubuntu编译过程在(http://source.android.com/source/index.h ...
- linux编译aborted,Ubuntu Linux上编译kernel出错__stack_chk_fail
Ubuntu Linux上编译kernel出错__stack_chk_fail 发布时间:2008-02-06 00:02:18来源:红联作者:SMuonon init/built-in.o: In ...
- 在linux上编译错误,Daemontools 在 Linux上编译错误解决
在Linux上编译daemontools出现错误 执行install出现 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .t ...
- Windows 7 X64平台编译LLVM+clang
1 源码包 去LLVM官方网站下载最新的源码,Windows平台下载三个即可(2019.04.24版本为LLVM 8.0.0): LLVM source code (.sig) Clang sourc ...
- printf如何消后续0_Hello World背后的故事:如何在Linux上编译C语言程序
欢迎访问我的网站查看原文: https://lulaoshi.info/blog/2020/05/31/compile-c-hello-world-on-linux.htmllulaoshi.inf ...
- linux上redis升级(将 Redis 3.0.7 升级到 5.0.0版本)
linux上redis升级 处理:将 Redis 升级到 5.0.0版本,下载地址:https://redis.io/download/ redis 原版本:3.0.7,现在就对他做一下升级处理. 升 ...
最新文章
- 腾讯开源框架Angel推出3.0版本:全栈机器学习平台
- HTML基础复习(三)表格
- CTFshow 信息收集 web12
- android密码解锁/指纹解锁返回的authToken深度解剖
- 部分网站为什么上不去_企业网站如何霸占搜索引擎首页
- 快速排序 数组 函数 c语言,书上快速排序程序中子函数是怎样更改数组的?理论上不可实现啊...
- svn安装教程 mysql_CentOS6.4 下安装SVN的详细教程(超详细)
- java hanoi塔问题_java 解决汉诺塔问题
- ASP.NET 实现登录界面(生成验证码)
- 安卓system镜像分区_玩机爱好者想要的PT分区到底是什么?可以使现有的安卓系统更快!...
- 利用计算机测地震是计算机的什么,计算机在气象预报、地震探测、导弹卫星轨迹等方面的应用都属于( )...
- 多线程的那点儿事(之数据同步)
- 直播丨2020年全国首场12c OCM直考揭秘
- 期货品种产业链图表_农业
- html电脑添加高德地图,vue-cli项目h5页面或者PC端页面引入高德地图组件,多点标注,自定义弹窗的详细描述...
- 看单片机原理图-输入输出电路LED指示、按键输入
- 分析classpath、path、JAVA_HOME的作用及JAVA环境变量配置(转发博客园)
- android谷歌dns设置在哪,安卓手机怎么设置DNS Android手机修改DNS图文教程
- 4k显示器用html好还是dp,2K、4K显示器的高清线你造怎么选吗?
- Kafka分区副本重分配源码分析