ubuntu安装LLVM和clang
2015-11-04 13:48
288 查看
问题描述
笔者在安装LLVM和clang时遇到一下奇葩的问题,搞的人极为头大。先说说笔者的环境吧。- ubuntu12.04 64位。用这个主要是笔者之前做的一些工作需要在这个环境上部署。这也是笔者这一段时间来极为头疼的事情。
- gcc-4.6.3/g++-4.63。这个是系统默认的,这样导致了一下奇怪的问题。
由于特殊的环境,便造成了各种奇奇怪怪的问题,虽然这些问题以后会以同样的方式重现,但是,也不失为以后遇到问题的一个思考方向。
安装cmake
笔者的环境中的cmake版本为2.8.7而LLVM需要的版本最低要求为2.8.12.2。由于apt-get安装的只能是2.8.7的了,无奈只能去官网上重新下载安装包了。官网给出的是最新版本的而且是可执行的文件,捣鼓了半天,在网上搜了半天都是啥./bootstrap啥的,可是这个压缩包中是没有这个文件的。只好下源码,通过源码安装。
执行了
git clone git://cmake.org/cmake.git克隆下来的是当时最新版本的3.4,为了报销起见,笔者还是觉得安装2.8.12.2版本的。那么问题就来了,怎样获得2.8.12.2版本的代码呢?笔者是这样干的:1
git checkout git checkout -b 2.8.12.2 2.8.12.2 #钱一个2.8.12.2是笔者新建的一分支,后一个是tag也就是需要的版本号。 #这样就相当于,从指定的tag新建了一个分支,这样就可以获取指定tag的代码了。 $:sudo ./configure $:sudo make $:sudo make install
这样就安装好了合适的cmake了。
升级gcc和g++
原本以为这样就好了,事实上是笔者想的太多了。g++从4.7才开始支持才C++11,而笔者所装LLVM版本为3.7已经有一些C++11特性了,自带g++4.6.3已经不能对其进行编译了。路有三条:1. 直接
sudo apt-get install llvm clang一条命令搞定,可是安装的LLVM版本比较老,是3.0版本的。
2. 和第一条路类似,降低LLVM版本,这就为难了——降到哪个版本呢?
3. 笔者选择了第三条路,升级gcc/g++,通过笔者走的是保守路线,升级到4.8也不高也不低。
升级过程还是比较顺利的;,添加新的源,直接apt-get安装,修改gcc和g++链接。 2
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-4.8 sudo apt-get install g++-4.8 cd /usr/bin sudo rm g++ sudo ln -s g++-4.8 g++ sudo ln -s gcc-4.8 g++
后两步是必须的,不然默认编译器还是之前的4.6版本的。
安装LLVM和clang
总算把各种路障清干净了,接下来就更好办了,直接按照官方文档一步一步输命令安装即可。不再赘述3,详情见参考资料。参考资料
请问怎么取得git 打好的tag所对应的代码呢?:http://www.oschina.net/question/1030451_105857#tags_nav ↩升级Ubuntu 12.04下的gcc到4.7 :http://blog.chinaunix.net/uid-23381466-id-3475968.html ↩
Getting Started: Building and Running Clang:http://clang.llvm.org/get_started.html ↩
相关文章推荐
- MySQL:MySQL基本入门
- java对象的序列化
- hdu-5524 Product
- Swift(八、闭包)
- 关于MVC微信开发遇到的那些坑。
- Unity3d使用高通Vuforia发布IOS工程遇见缺少插件问题解决
- JVM调优总结(一)– 一些概念
- Hibernate之主键生成策略
- lazy懒加载(延迟加载)UITableView
- 凸优化(一)——Introduction
- Detailed ASP.NET MVC Pipeline
- 磁盘分区软件
- 解决eclipse快捷键冲突问题和修改eclipse快捷键
- UITableview reloadData 无效
- 经典的python代码
- CHROME下去掉保存密码后输入框变成黄色背景样式
- Maven的安装与使用
- android 休眠唤醒机制分析(一) — wake_lock
- HTML 表单
- echo print() print_r() var_dump()的区别