llvm+clang编译安装
来源:互联网 发布:jq数组去重 编辑:程序博客网 时间:2024/04/28 10:17
最近一段时间在llvm+clang上做一些东西,所以顺便将自己如何编译安装llvm+clang写了篇文章发在这里,希望能帮助刚接触llvm+clang的童鞋少走一些弯路(我刚接触的时候为了编译安装这个费了好大的力气,全是眼泪这里不多说了)。首先介绍一下,我用的ubuntu麒麟16.10的操作系统(不是虚拟机,我在虚拟机上编译安装了很多次都以失败告终)。具体过程如下:
1. 下载码源
首先先安装svn,用来check out llvm的码源
aptitude install subversion
然后checkout llvm的码源:
1.2 Check out LLVM
checkout的是llvm项目的主要代码
cd where-you-want-llvm-to-live
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
1.3 Check out Clang
clang是llvm项目的 C, C++, Objective C and Objective C++ 前端
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../..
1.4 Check out extra Clang tools: (可选的)
Extra中包含的是利用clang提供的借口开发的一些额外工具,我们可以在这些工具的基础上开发我们自己的工具。
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
cd ../../../..
1.5 Check out Compiler-RT
Compiler-RT主要是为Clang和LLVM提供运行时库的支持
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../..
1.6 Check out Test Suite Source Code(可选的)
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suit
2. 编译安装
llvm支持cmake和autotools进行编译。不同编译方式对后续创建自定义的pass的方式就不同,例如如果使用cmake编译,写pass的时候就不需要创建makefile文件,而需要创建CMakeList.txt文件。
在编译之前,需要参看对系统的要求:
http://llvm.org/docs/GettingStarted.html#requirements
2.1 安装cmake
直接使用指令安装的cmake的版本过低,因此需要自己安装cmake。
从http://www.cmake.org/download/下载cmake的码源,解压在安装。(我自己安装的是cmake3.6)
./bootstrap
make
make install
2.2 编译安装
llvm为了防止编译的中间结果分布在码源目录中,影响码源的结构。因此不支持目录内编译。需要在码源目录外创建额外的编译目录。
mkdir build
cd build
cmake -G "Unix Makefiles" ../llvm
make
make install
在make的时候可以选择make -jn指令来进行并行编译,加快编译的速度。n表示你所拥有的处理器数。
另外,需要强调的是,llvm+clang 3.6以前的版本可是使用./configure来进行编译,3.6以后的版本,只能使用cmake进行编译。
---恢复内容结束---
---恢复内容结束---
- llvm+clang编译安装
- llvm+clang编译安装
- Ubuntu编译安装llvm-clang
- clang llvm 源码编译安装
- Ubuntu编译安装llvm+clang
- Ubuntu编译安装llvm-clang
- Ubuntu编译安装llvm-clang
- CentOS 5.8编译安装LLVM+Clang
- ubuntu14编译安装llvm&clang 3.9
- Ubuntu下Clang和LLVM的编译安装
- YouCompleteMe折腾配置以及clang+llvm编译安装
- LLVM 和Clang源代码编译
- LLVM(Clang)的编译过程
- llvm + clang安装(官方文档)
- ubuntu安装LLVM和clang
- 从代码开始编译clang/llvm
- MinGW-W64 编译 LLVM 与 Clang
- iphone-命令行编译之--LLVM与Clang
- 冒泡排序
- C标准库学习之<math.h> ——数学函数
- 报错修改
- git revert的使用
- Java多线程问题总结
- llvm+clang编译安装
- 使用Animation实现组件的折叠和展开
- mysql Access denied for user root@localhost错误解决方法总结
- SVN 403提交错误解决方案(转载)
- iOS内存获取
- ubuntu16.04LTS下Spark完全分布式搭建
- 杭电 2018 ( 母牛的故事 ) java
- POJ - 3041 最小顶点覆盖
- oracle最大可以设置多少游标数