如何使用Ninja快速编译LLVM和Clang
在使用Make工具编译LLVM是非常耗时的。往往需要三四个小时。但是使用goolge开源的ninja编译LLVM只需要10到20分钟。
本文以llvm3.3为例,演示在linux上编译和安装过程。
第一步 安装ninja和cmake
1 获取并编译安装 ninja
$ git clone git://github.com/martine/ninja.git
$ cd ninja
$ ./bootstrap.py
$ sudo cp ninja /usr/local/bin/
Q: warning: A compatible version of re2c (>= 0.11.3) was not found;
changes to src/*.in.cc will not affect your build.
A: re2c 是一个用于编写快速灵活的词法分析器的工具.
$sudo apt-get install re2c
2 安装 cmake(至少需要 2.8.9):
用sudo apt-get install cmake得到的是 2.8.7–2013.3.7
可从http://www.cmake.org/cmake/resources/software.html获 取 最 新 的
cmake, 再编译.
编译 cmake 需要 QT4 和 java:
Q:Could NOT find Qt4 (missing: ...
A:sudo apt-get install qt-sdk
Q:fatal error: ext2fs/ext2 fs.h: No such file or directory
A: sudo apt-get install e2fslibs-dev
Q:fatal error: curses.h: No such file or directory
A: sudo apt-get install libncurses5-dev
第二步下载源代码
llvm所有的项目的代码的svn库都在:
http://llvm.org/svn/llvm-project/
可以使用svn拷贝
1 下载llvm3.3
$ svn co http://llvm.org/svn/llvm-project/llvm/branches/release_33/ llvm3.3
2 下载clang3.3到llvk3.3/tools
$ cd llvm3.3/tools/
$ svn co http://llvm.org/svn/llvm-project/cfe/branches/release_33/ clang
3 下载Compiler RT到llvm3.3/projects
$ cd ../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/branches/release_33/ compiler-rt
第三步 编译和安装
1 建立build目录
$ cd llvm3.3/
$ mkdir build
2 产生ninja编译文件
#可以使用-DCMAKE_INSTALL_PREFIX指定安装目录
$ cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_INSTALL_PREFIX=/opt/llvm3.3 ..
$ ln -s ../build/compile_commands.json ..
3 编译
$ ninja
4 安装
$ sudo ninja install
5 把安装目录加入的环境变量PATH中
可以在home目录的.bashrc中加入
export PATH=/opt/llvm3.3/bin/:$PATH
如何使用Ninja快速编译LLVM和Clang的更多相关文章
- MinGW-W64 编译 LLVM 与 Clang
原文: http://blog.csdn.net/happywjh666/article/details/51415723 编译环境: 系统 --win10 64位 gcc -- version 5. ...
- Windows 7 X64平台编译LLVM+clang
1 源码包 去LLVM官方网站下载最新的源码,Windows平台下载三个即可(2019.04.24版本为LLVM 8.0.0): LLVM source code (.sig) Clang sourc ...
- 编译llvm+clang
第一步,下载llvm代码: git clone git@github.com:llvm-mirror/llvm.git 第二步,进入llvm/tools目录并下载clang代码 cd llvm/too ...
- iOS开发系列-LLVM、Clang
LLVM LLVM计划启动于2000年,最初由University of Illinois at Urbana-Champaign的Chris Lattner主持开展. 我们可以认为LLVM是一个完整 ...
- LLVM与Clang的概述及关系
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time).链接时间(link-time).运行时间(run-time ...
- 转:GCC,LLVM,Clang编译器对比
GCC,LLVM,Clang编译器对比 转自: http://www.cnblogs.com/qoakzmxncb/archive/2013/04/18/3029105.html 在XCode中, ...
- 在Linux CentOS上编译并安装Clang 3.5.0
编译CoreCLR需要Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum repos中最新版也是这个),只能自己手工编译LLVM的源代码进行安装. (注:CentOS的版本是6 ...
- ios llvm and clang build tools
1. 使用 libclan g或 clang 插件 包括( libclang 和 Clangkit) 备注: Clangkit,它是基于 clang 提供的功能,用 Objective-C 进行封装 ...
- 转:LLVM与Clang的概述及关系
转:http://www.cnblogs.com/saintlas/p/5738739.html LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言 ...
随机推荐
- fn标签
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
- ubuntu中mysql修改编码utf8
摘要:Ubuntu Server 服务器下使用apt-get 命令安装的mysql,默认不是utf8.在这里记录一下如何将编码修改成utf8. 办法解决: 1.查看mysql编码 show varia ...
- MRC的下setter访问器的两种形式
// Person复合了Phone和Room // 第一种:比较合理 先判断对象形参传递的对象和原属性是否一致,不一致在释放旧值,给形参传递的值retain,因为retain方法会返回该对象,因此可以 ...
- openstack controller ha测试环境搭建记录(二)——配置corosync和pacemaker
corosync.conf请备份再编辑:# vi /etc/corosync/corosync.conf totem { version: 2 token: 10000 t ...
- 编译安装CoreSeek-4.1
编译安装CoreSeek-4.1 yum -y install expat-devel* wget http://www.coreseek.cn/uploads/csft/4.0/coreseek- ...
- 51nod贪心算法教程
51nod确实是一个好oj,题目质量不错,wa了还放数据,学习算法来说挺好的,这次我做了几个水的贪心,虽然水,但是确实都很典型. 教程链接:http://www.51nod.com/tutorial/ ...
- SpringJDBC学习之路(1)
本人从事java开发也有一段时间了,项目开发也有好几个.但感觉所有写的代码无非就是搬数据取数据.service层写的逻辑多一点,最近做的一个项目整个项目的结构以及层次发现代码过于臃肿冗余.同样一个方法 ...
- LPC1788 nand驱动
Lpc 1788自带有emc接口用于驱动nandflash,norflash,sdram设备,对于nandflash驱动因为配置简单,时序也简单 首先,针对nandflash而言应当在系统中有三个地址 ...
- 虚拟机联网及远程连接-Linux基础环境命令学习笔记
1.ifconfig命令=ip a命令,查看IP地址 网卡默认名称eth0. Bcast 广播地址2.xshell or secureCRT远程连接 ssh root@地址 xmanager 远程桌面 ...
- Excel每隔10行取得一个数字
index(a:a,row(a1)*10) 然后下拉 将一列数字分为好多列 =OFFSET($B$1,(ROW(A1)-1)*11+COLUMN(A1)-1,,) row()返回当前的行,比如A则返回 ...