Linux升级GCC 4.8.1清晰简明教程(Ubuntu 12.04 64位版为例)

前言:

上次在CentOS 6上升级GCC 4.7.2的教程()由于本人但是能力有限,而且时间比较紧,很多东西没有深究,导致教程里面有一些冗杂和不太正确或不能通用的部分,(还被师妹说我误导她,冤枉啊),向大家道歉。

这次我在Ubuntu 12.04 LTS 64位版上更新gcc,发现了原来的一些问题,这次没有什么时间上的压力,我比较认真地去查阅了官方文档,也参考了一些网上的帖子,对整个升级过程在依赖包的安装、不同Linux流派、32和64位下的区别和共同点有了更深的认识。

现总结如下:

PS:不标注出处的转载是可耻的。

(我整理了Ubuntu 12.04下的shell命令,如果你很忙的话,可以只把里面的shell代码复制出来执行)

基本过程:这里对整个流程做一个概要性的介绍,让大家在做每一件事情的时候做到心中有数。1,安装依赖库和工具根据官方文档,如果只是为了编译安装而不是去修改gcc,那么所需要的库和工具并不是很多。需要强调的有两点:1)需要一个c++编译器,也就是说如果只有gcc而无g++,那么是无法完成这次编译的;2)在64位系统上如果想要编译出32位的程序的话,需要额外安装相应的库(默认开启)。2,,配置(configure)配置我们编译出的gcc所支持的语言,目标环境(是否为交叉编译器),依赖库路径(一定条件下可省略,下详),编译结果安装到哪里……配置程序会根据这些信息生产Makefile文件,供下一步使用。3,编译(make)根据configure生成的Makefile编译出我们的gcc和相应的lib如libstdc++等。流程:请大家多多查阅官方文档:一,安装依赖库与工具工具:支持c++98的编译器(g++),make,perl,解压工具(tar、gzip等),Binutils(仅部分情况下需要)等。这里一般不需要太担心,因为现在的linux系统在安装完成后,这里面的大部分工具就已经就位了,唯一需要注意的就是c/c++环境。如果确定本机已经安装了gcc和g++那么可以跳过这一部分。Unbutu下可以使用:apt-get install build-essential来方便地搞定,而且它还安装了一些其他必须的库如glibc(Ubuntu下叫libc)。

其他一些Linux平台没有build-essential这个包,稍微麻烦一点。

因为安装g++和gcc,必然会安装libstdc++和glibc,所以建议通过:

apt-get install gcc g++ make libc6-dev

的方式来安装,以避免一些恶心的问题,还可以确保相应工具的安装。

库:根据官方文档,如果只是安装不修改的话只需要5个依赖第三方库。这个5个库分2类,一类(gmp,mpc,mpfr)是可以在gcc编译过程中自动编译的(先自行下载了源码并正确放置),另一类是需要独立安装的(isl,cloog)。操作:1,检查它们是否已经安装了:如果要检查XXX库是否安装,使用:locate libXXX

来查找,如果查找到libXXX.so文件,那么就说明这个库已经安装了。(关于库搜索路径的问题见 )

2,安装(如果第一步发现某个库已经装了自然就不用再装啦):

对于gmp,mpc,mpfr三个库,可以在gcc的解压根目录下运行

./contrib/download_prerequisites

来下载并解压,并创建符号连接。(如果下载缓慢,可以修改脚本中的下载地址到其他gnu镜像,注意修改版本号,根据官网的说明更高的版本不会引发其他问题)

根据gcc的编译规则:如果在gcc的根目录下有gmp,mpc,mpfr这几个目录,那么在make gcc的时候,它们会自动make,不需要手动安装。

对于isl和cloog这个两个库,可以自己编译(编译时请详细阅读官方文档),但是建议直接从源上面下载。(因为cloog依赖了gmp和isl,这就是说如果你要编译会非常麻烦。)

例如:

apt-get intall libisl-dev libcloog-isl3

在具体环境下可能需要修改库的名字,这一点可以通过在输入完libisl或libcloog后按两下Tab键来查看,后同。

3,安装其他库:

如果希望在64位系统下也能编译出32位的程序,那么还需要32位的运行库,而这些库在64位系统下默认是不会安装的。

Ubuntu下有简单的方法,可以使用:

apt-get install gcc-multilib g++-multilib

Fedora下可以使用:

apt-get install glibc-devel.i686 libstdc++-devel.i686

Ubuntu下也可以借鉴这个模式,修改包名安装相应的包。

真正的停下来,享受自我的体验时刻,也许浮光掠影,

Linux升级GCC 4.8.1清晰简明教程(Ubuntu 12.04 64位版为例)

相关文章:

你感兴趣的文章:

标签云: