来自引用:

http://www.cnblogs.com/dudu/p/4294374.html

编译llvm几乎耗费了1个小时…..

编译CoreCLR需要Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum repos中最新版也是这个),只能自己手工编译LLVM的源代码进行安装。

(注:CentOS的版本是6.6)

一、安装libstdc++4.7

(注:如果是CentOS 7.0,不需要这步)

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/

如果不安装,在configure配置编译选项时会出现下面的错误提示:

We detected a missing feature in the standard C++ library that was known to be

missing in libstdc++4.6 and implemented in libstdc++4.7. There are numerous

C++11 problems with 4.6’s library, and we don’t support GCCs or libstdc++ older

than 4.7.

二、安装Python 2.7.9

(注:如果是CentOS 7.0,不需要这步)

CentOS 6.6自带的是Python 2.6.6,而编译llvm需要Python 2.7以上。

1)安装编译Python需要的包包

yum install zlib-devel

yum install bzip2-devel

yum install openssl-devel

yum install ncurses-devel

yum install sqlite-devel

2)下载并解压Python 2.7.9的源代码

cd /opt

wget –no-check-certificate https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz

tar xf Python-2.7.9.tar.xz

cd Python-2.7.9

3)编译与安装Python 2.7.9

./configure –prefix=/usr/local

make && make altinstall

4)将python命令指向Python 2.7.9

ln -s /usr/local/bin/python2.7 /usr/local/bin/python

三、添加交换分区

如果编译的机器内存比较小,建议添加交换分区。我当时测试的机器只有1G内存,在编译过程中出现了“c++: internal compiler error: Killed (program cc1plus)”错误。

1)创建并激活交换文件(比如2G):

dd if=/dev/zero of=/swapfile bs=1k count=2048000

mkswap /swapfile

swapon /swapfile

2)修改 /etc/fstab 文件让交换文件启动时自动加载,添加如下内容:

/swapfile swap swap defaults 0 0

四、编译LLVM

1)下载llvm的源代码

http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz

mv llvm-3.5.0.src llvm

2)下载clang的源代码

cd llvm/tools

wget http://llvm.org/releases/3.5.0/cfe-3.5.0.src.tar.xz

tar xf cfe-3.5.0.src.tar.xz

mv cfe-3.5.0.src clang

3)下载compiler-rt的源代码

cd ../projects

wget http://llvm.org/releases/3.5.0/compiler-rt-3.5.0.src.tar.xz

tar xf compiler-rt-3.5.0.src.tar.xz

mv compiler-rt-3.5.0.src compiler-rt

4)配置编译选项

cd ..

./configure –enable-optimized CC=gcc CXX=g++

5)编译llvm

make -j2

编译成功后的提示:

llvm[0]: * Completed Release+Asserts Build

6)安装编译好的llvm

make install

会安装在/usr/local/bing中

7)检查clang的版本

clang –version

clang version 3.5.0 (tags/RELEASE_350/final)

如果还是旧版本,需要将/usr/bin/clang指向clang 3.5.0:

ls -s /usr/local/bin/clang /usr/bin/clang

【相关链接】

如何在CentOS上安装libstdc++4.7

在Linux CentOS 6.6上安装Python 2.7.9

最新文章

  1. Visual Studio 2015 如何将全英界面转成中文
  2. 一起学微软Power BI系列-官方文档-入门指南(5)探索数据奥秘
  3. 关于laravel基础知识
  4. lintcode:Coins in a Line 硬币排成线
  5. 【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间
  6. SVN 迁移
  7. [记录]使用Gitblit 在windows 上安装Git Server
  8. VS调试异常代码 异常:HRESULT: 0x80070057 (E_INVALIDARG) 的处理
  9. MVC中的View2(转)
  10. 王立平--PopupWindow
  11. 8Manage:“消费升级”缘何剑指企业一体化管理变革?
  12. C#委托的使用及案例
  13. 【原创】Eclipse vs. IDEA快捷键对比大全
  14. form表单提交数据,页面必定会刷新,ajax提交数据不会刷新,做到悄悄提交,多选删除,ajax提交实例
  15. angular 1.2.29版本下 动态添加多个表单、 校验全部、 提交 、ng-form方案
  16. 【iCore4 双核心板_uC/OS-II】例程六:信号量——任务同步
  17. 第6章 RTX 操作系统源码方式移植
  18. QT 登陆对话框
  19. Java-CSV文件读取
  20. php代码审计3审计sql注入漏洞

热门文章

  1. pm2 的使用
  2. 转 Spring 组件 <context:component-scan base-pakage="">用法
  3. ubuntu安装opencv(自己编译)
  4. Java基础教程:面向对象编程[3]
  5. 【转】BigInteger、BigDecimal详解
  6. 一.编译nginx
  7. BZOJ 1600 [Usaco2008 Oct]建造栅栏:dp【前缀和优化】
  8. 存储过程IF --ELSE IF -- END IF 使用
  9. Facebook的实时流处理技术——Scuba是Facebook的一个非常快速、分布式的内存数据库,用于实时分析和查询
  10. Java_HTTP_01_HttpClient