ubuntu安装LLVM和clang

问题描述

笔者在安装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,详情见参考资料。

参考资料


  1. 请问怎么取得git 打好的tag所对应的代码呢?:http://www.oschina.net/question/1030451_105857#tags_nav ↩
  2. 升级Ubuntu 12.04下的gcc到4.7 :http://blog.chinaunix.net/uid-23381466-id-3475968.html ↩
  3. Getting Started: Building and Running Clang:http://clang.llvm.org/get_started.html ↩

你可能感兴趣的:(编译器)