CentOS6.6源码编译升级GCC至4.8.2
升级前提
源码编译需要至少要有一个可用的gcc编译器。
可以用过yum自动安装或者手动下载rpm包安装。
通过yum可以看到至少需要下面这些安装包,所以可以到许多rpm package站点中搜索下载相应的rpm包,不过版本要搞对了,这个yum搜出来的版本是针对4.4.7的。所以需要什么版本gcc就寻找什么版本对应的依赖包。现在的rpm站点都会说明这个软件包依赖哪些软件包,被哪些软件包依赖,非常方便,不过找起来还是比较耗时的。

编译安装GCC4.8.2
下载gcc4.8.2源码包
curl -O ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz;
首先需要下载gcc安装所依赖的mpc,mpfr,gmp包,gcc自带了一个脚本帮我们下载并建立好链接等gcc编译时一起编译,你也可以自己去下载依赖包。
tar zxf gcc-4.8..tar.gz
cd gcc-4.8.
./contrib/download_prerequisites
打开上面的download_prerequisites可以看到,它首先下载了3个包,所以当发现脚本卡在下载的地方可能就是无法访问的原因了,这是需要去找一个新的下载地址,方法很简单,google文件名就可以找到很多。

开始编译gcc
mkdir gcc-build-4.8.
cd gcc-build-4.8.
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
make install
安装完成后如果发现gcc -v版本没有变化,就再执行以下启动脚本。
source /etc/profile
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的时候是否可以指明安装路径。
执行
./configure --help
可以看到确实是有这样的选项的

所以只需要在configure的时候带上 --prefix=/usr 就可以将gcc编译安装到usr下了
CentOS6.6源码编译升级GCC至4.8.2的更多相关文章
- golang基于当前1.9版本进行源码编译升级到1.10
一.起因 golang出了最新的1.10版本,而刚出的vgo也是需要基于该最新版本的.为了测试vgo,因此需要将我的v1.9升级到v1.10版本. 安装过golang的同学都知道,golang常用的有 ...
- Mysql5.6 for Centos6.5源码编译安装
## 说明 不同服务器需要改变 server_id ,同一台机器上需要改变 port 1. 关闭防火墙[root@mysql ~]# service iptables status --查看防火墙状态 ...
- centos6.5 源码编译 mysql5.6.21
1.yum安装各个依赖包 [root@WebServer ~]# yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automa ...
- Centos6.5源码编译安装nginx
1.安装pcre下载地址:http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz #tar -axvf pcre ...
- Centos6.5 源码编译安装 Mysql5.7.11及配置
安装环境 Linux(CentOS6.5 版).boost_1_59_0.tar.gz.mysql-5.7.11.tar.gzMySQL 5.7主要特性: 更好的性能:对于多核CPU.固态硬盘. ...
- centos6.5环境源码编译安装mysql5.6.34
centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...
- mysql5.7.10 源码编译安装记录 (centos6.4)【转】
一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系 ...
- CentOS6.5下搭建LAMP环境(源码编译方式)
CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL) 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP ,WAMP,MAMP等.这里我介 ...
- centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版
zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...
随机推荐
- 算法之旅,直奔<algorithm>之十三 fill
fill(vs2010) 引言 这是我学习总结<algorithm>的第十三篇,fill是一个很好的初始化工具.大学挺好,好好珍惜... 作用 fill 的作用是 给容器里一个指定的范围 ...
- zend studio-字体大小设置
在使用zend studio的过程中为了方便我们编码,很多时候需要设置编码的字体的大小,设置步骤如下: 选择[Windows]-[preference]-[general]-[appearance]- ...
- my.cnf 中字符集设置
我们的一些业务系统最近出现了一种情况,尤其是新版的ios 设备,在发布消息时,使用了表情符号时, 对gbk 字符集的数据库,写入数据库的数据,在回显时,变成 ‘口口’ 无法回显, 对utf8 ...
- [转] React Native Navigator — Navigating Like A Pro in React Native
There is a lot you can do with the React Native Navigator. Here, I will try to go over a few example ...
- struts----通配符设置
本次学习的内容是struts通配符配置: 具体内容为: 一.准备工作 1.新建Web工程 2.添加struts:右键点击工程名选择My Eclipse-->点击add struts..--> ...
- [置顶] gridview中嵌套gridview(并实现子gridview的数据绑定),页面传值,加密,数据绑定
先来张效果图 gridview 中嵌套gridview的原理是这样的,在父gridview中建一个摸板列,然后再模版列当中在放入子gridview,然后再父gridview的OnRowDataBoun ...
- hdu 1563 Find your present!
Find your present! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- INI文件的读写
public class INIoperation { string inipath = Utils.GetMapPath("/Integration/Sync/set.ini") ...
- WebView组件的应用
1.什么是WebView? WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页. <?xml version="1.0" ...
- Ext.Net学习笔记11:Ext.Net GridPanel的用法
Ext.Net学习笔记11:Ext.Net GridPanel的用法 GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: < ...