CentOS6.6源码编译升级GCC至4.8.2-阿里云开发者社区

开发者社区> 吕亚辉> 正文

CentOS6.6源码编译升级GCC至4.8.2

简介: 升级前提 源码编译需要至少要有一个可用的gcc编译器。 可以用过yum自动安装或者手动下载rpm包安装。 通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相应的rpm包,不过版本要搞对了,这个yum搜出来的版本是针对4.4.7的。
+关注继续查看

升级前提

源码编译需要至少要有一个可用的gcc编译器。

可以用过yum自动安装或者手动下载rpm包安装。

通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相应的rpm包,不过版本要搞对了,这个yum搜出来的版本是针对4.4.7的。所以需要什么版本gcc就寻找什么版本对应的依赖包。现在的rpm站点都会说明这个软件包依赖哪些软件包,被哪些软件包依赖,非常方便,不过找起来还是比较耗时的。

编译安装GCC4.8.2

下载gcc4.8.2源码包

1 curl -O ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz;

首先需要下载gcc安装所依赖的mpc,mpfr,gmp包,gcc自带了一个脚本帮我们下载并建立好链接等gcc编译时一起编译,你也可以自己去下载依赖包。

1 tar zxf gcc-4.8.2.tar.gz
2 cd gcc-4.8.2 
3 ./contrib/download_prerequisites

打开上面的download_prerequisites可以看到,它首先下载了3个包,所以当发现脚本卡在下载的地方可能就是无法访问的原因了,这是需要去找一个新的下载地址,方法很简单,google文件名就可以找到很多。

开始编译gcc

mkdir gcc-build-4.8.2
cd gcc-build-4.8.2
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
make install

安装完成后如果发现gcc -v版本没有变化,就再执行以下启动脚本。

1 source /etc/profile
2 source ~/.bash_profile

安装完之后的问题

安装完之后虽然敲gcc g++ c++ 等版本都更新到了4.8.2但其实电脑里里面至少存在两个版本的gcc

whereis或者where可以看到有多个gcc文件,which命令可以看到命令gcc对应的是usr/local/bin/gcc,而原来的gcc执行文件在/usr/bin/gcc,执行/usr/bin/gcc -v可以看到gcc的版本还是4.4,这虽然问题不大,但有些shell脚本或者Makefile中直接写的是gcc的绝对路径,所以很有可能会使用旧的gcc版本去编译,从而导致失败。所以还是需要将原来的gcc覆盖掉。最开始想的办法是将、usr/bin/gcc软链接到usr/local/bin/gcc,对于g++,c++等也做相似的处理

这种方式看似解决了问题,但总觉得不靠谱,直到最近编译apache thrift发现还是不太对。所以考虑在安装gcc的时候是否可以指明安装路径。

执行

1 ./configure --help 

可以看到确实是有这样的选项的

所以只需要在configure的时候带上 --prefix=/usr 就可以将gcc编译安装到usr下了 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
void 类型的指针|学习笔记
快速学习 void 类型的指针
3 0
来更快的Maven了,我的天,速度提升了8倍!(1)
更快的Maven来了,我的天,速度提升了8倍!(1)
31 0
MySql5.7数据优化,瞬间飞起
MySql5.7数据优化,瞬间飞起
4 0
更快的Maven来了,我的天,速度提升了8倍!(3)
更快的Maven来了,我的天,速度提升了8倍!(3)
27 0
更快的Maven构建工具mvnd和Gradle哪个性能更好?(3)
更快的Maven构建工具mvnd和Gradle哪个性能更好?(3)
21 0
Java 中 List 分片的 5 种方法!(1)
Java 中 List 分片的 5 种方法!(1)
10 0
常量和变量_helloworld 程序|学习笔记
快速学习常量和变量_helloworld 程序
3 0
常量和变量_getchar函数|学习笔记
快速学习常量和变量_getchar函数
3 0
Java 中 List 分片的 5 种方法!(5)
Java 中 List 分片的 5 种方法!(5)
21 0
常量和变量_C语言简介|学习笔记
快速学习常量和变量_C语言简介
4 0
+关注
吕亚辉
主做Java 后台开发,熟悉并发与网络编程。乐于分享,爱钻研问题,喜欢技术上的挑战,属复合型开发工程师,擅长后端开发,也有一定web前端开发经验,曾独立开发多个项目,独立与全栈开发能力强。
81
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载