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等全部源代码相关推荐

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

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

  2. java调用clang编译的so_在Linux上编译LLVM/Clang等全部源代码

    本教程使用的操作系统是Ubuntu Linux 18.04 LTS版本,编译器是LLVM/Clang 6.0,要编译的LLVM源代码是6.0.1. 1.安装必要的软件.它们是:cmake/swig/p ...

  3. Linux上编译并配置opencv-3.3.0过程

    1.下载opoencv包 ,地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/ 2.解压opoencv包 unzi ...

  4. RH系列linux上编译android2.3(gingerbread)

    在RH系列linux上编译android2.3(gingerbread)的过程如下: 官方源码及ubuntu编译过程在(http://source.android.com/source/index.h ...

  5. 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 ...

  6. 在linux上编译错误,Daemontools 在 Linux上编译错误解决

    在Linux上编译daemontools出现错误 执行install出现 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .t ...

  7. Windows 7 X64平台编译LLVM+clang

    1 源码包 去LLVM官方网站下载最新的源码,Windows平台下载三个即可(2019.04.24版本为LLVM 8.0.0): LLVM source code (.sig) Clang sourc ...

  8. printf如何消后续0_Hello World背后的故事:如何在Linux上编译C语言程序

    欢迎访问我的网站查看原文: https://lulaoshi.info/blog/2020/05/31/compile-c-hello-world-on-linux.html​lulaoshi.inf ...

  9. linux上redis升级(将 Redis 3.0.7 升级到 5.0.0版本)

    linux上redis升级 处理:将 Redis 升级到 5.0.0版本,下载地址:https://redis.io/download/ redis 原版本:3.0.7,现在就对他做一下升级处理. 升 ...

最新文章

  1. 腾讯开源框架Angel推出3.0版本:全栈机器学习平台
  2. HTML基础复习(三)表格
  3. CTFshow 信息收集 web12
  4. android密码解锁/指纹解锁返回的authToken深度解剖
  5. 部分网站为什么上不去_企业网站如何霸占搜索引擎首页
  6. 快速排序 数组 函数 c语言,书上快速排序程序中子函数是怎样更改数组的?理论上不可实现啊...
  7. svn安装教程 mysql_CentOS6.4 下安装SVN的详细教程(超详细)
  8. java hanoi塔问题_java 解决汉诺塔问题
  9. ASP.NET 实现登录界面(生成验证码)
  10. 安卓system镜像分区_玩机爱好者想要的PT分区到底是什么?可以使现有的安卓系统更快!...
  11. 利用计算机测地震是计算机的什么,计算机在气象预报、地震探测、导弹卫星轨迹等方面的应用都属于( )...
  12. 多线程的那点儿事(之数据同步)
  13. 直播丨2020年全国首场12c OCM直考揭秘
  14. 期货品种产业链图表_农业
  15. html电脑添加高德地图,vue-cli项目h5页面或者PC端页面引入高德地图组件,多点标注,自定义弹窗的详细描述...
  16. 看单片机原理图-输入输出电路LED指示、按键输入
  17. 分析classpath、path、JAVA_HOME的作用及JAVA环境变量配置(转发博客园)
  18. android谷歌dns设置在哪,安卓手机怎么设置DNS Android手机修改DNS图文教程
  19. 4k显示器用html好还是dp,2K、4K显示器的高清线你造怎么选吗?
  20. Kafka分区副本重分配源码分析

热门文章

  1. git reset 之后的后悔药
  2. Android资源命名规范
  3. Lazy loading
  4. CF1012F Passports
  5. wadl 的自动生成(cxf版本3.1.1)
  6. jQuery函数学习
  7. iOS应用内跳转系统设置相关界面的方法
  8. [Ext JS 4] 实战Chart 协调控制(单一的坐标,两个坐标)
  9. 继承中多态的灵活使用及其分析图 第一个程序的升级版
  10. Zend Framework数据库操作