Linux升级GCC清晰简明教程
前言:
这次我在Ubuntu 12.04 LTS 64位版上更新gcc,发现了原来的一些问题,这次没有什么时间上的压力,我比较认真地去查阅了官方文档,也参考了一些网上的帖子,对整个升级过程在依赖包的安装、不同Linux流派、32和64位下的区别和共同点有了更深的认识。
现总结如下:
PS:不标注出处的转载是可耻的。
(如果你很忙的话,可以只把里面的shell代码复制出来执行)
基本过程:
流程:
一,安装依赖库与工具
工具:
1. apt-get install build-essential
1. apt-get install gcc g++ make libc6-dev
的方式来安装,以避免一些恶心的问题,还可以确保相应工具的安装。
库:
操作:
1. locate libXXX
2,安装(如果第一步发现某个库已经装了自然就不用再装啦):
1. ./contrib/download_prerequisites
来下载并解压,并创建符号连接。(如果下载缓慢,可以修改脚本中的下载地址到其他gnu镜像,注意修改版本号,根据官网的说明更高的版本不会引发其他问题)
1. apt-get intall libisl-dev libcloog-isl3
在具体环境下可能需要修改库的名字,这一点可以通过在输入完libisl或libcloog后按两下Tab键来查看,后同。
1. apt-get install gcc-multilib g++-multilib
Fedora下可以使用:
1. apt-get install glibc-devel.i686 libstdc++-devel.i686
Ubuntu下也可以借鉴这个模式,修改包名安装相应的包。
二,配置(configure)
1,建立编译目录
1. mkdir build
2. cd build
2,配置
--with-gmp
--with-mpfr
--with-mpc
--with-isl
--with-cloog
--with-gmp-include
--with-gmp-lib
1. ../configure --prefix=/usr/local --disable-multilib --enable-languages=c,c++
1. ../configure --prefix=/usr --enable-languages=c,c++ --with-gmp=/usr/gmp-5.1.3
3,检查
三,编译(make)
1. sudo make -j4
对于更好的机器-j后面的数字可以更大一些。
1. sudo make install
install的路径是在configure的时候配置的。
1,gcc 不支持make unintall,覆盖请谨慎。
如果希望共存两个版本的gcc,使用的时候自然可以通过输入完整路径来致命调用哪个gcc,但是这样比较复杂。
建议通过update-alternatives 来让系统知道当我们只输入gcc的时候,是希望调用哪一个(关于update-alternatives的详细用法请百度):
例如我的gcc的路径为/usr/local/bin/gcc,我给它一个100的优先级:
1. sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc 100
然后通过
1. sudo update-alternatives --config gcc
来查看两个gcc中系统选中了哪个(auto情况下是选中优先级高的),如果auto选中的不是我们要的,可以增加优先级或者手工制定默认的。
在其他Linux版本:
在升级gcc个过程中,主要区别就在于包的名字和包管理器的不同。
Ubuntu系(Debian)的包名和RedHat系(CentOS、Fedora)的在命名规则上不太一样。前缀洗好加版本号,开发版缩写为“dev”,用“-”连接架构;而后者的开发版缩写为”devel“,用”.“连接架构。
例如在安装32位的glibc的时候所使用的报名:
On Ubuntu: libc6-dev-i386.
On Red Hat distros: glibc-devel.i686
On CentOS 5.8: glibc-devel.i386
On CentOS 6.3: glibc-devel.i686
其次Ubuntu系有很多整合了的包,例如g++-multilib,build-essential等,而ReadHat系没有。
原载于http://blog.csdn.net/yanxiangtianji
新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐



所有评论(0)