Centos 6.5升级gcc : 源码安装 + rpm安装
1. 前言
采用Centos 6.5默认的gcc版本为4.4.7,不支持c++ 11,需要升级;
首先想到用yum命令:执行yum update gcc-c++或yum update g++ 显示没有可用更新;
于是只能手动下载更新gcc。
2. 源码安装
rpm安装请见(4.参考资料)
@ 下载最新版本gcc:http://gcc.gnu.org/
@ 准备好以下三个库,否则./configure将出现以下错误提示:
这三个库可以使用gcc下自带的脚本安装:./contrib/download_prerequisites (手动安装的下载地址:GMP,MPFR, MPC)
@ 进入gcc的目录下,并执行configure,成功将生成Makefile文件;
# ./configure --prefix=/usr/local/gcc-5.4.0 --disable-multilib
--prefix:指定gcc的安装目录,若不指定gcc将默认安装在/usr/local;
--disable-multilib:由于我使用的是64位系统,不加的话讲出现如下错误提示 -
@ 编译:# make 安装:# make install
执行安装命令将编译好的文件拷贝到目标安装文件夹中,至此安装告一段落;
3. 配置
1) gcc 5.4.0的所有文件,包括命令文件(如gcc、g++)、库文件等都在安装目录下分别存放,如命令文件放在bin目录下、库文件在 lib下、头文件在include下等。由于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。
@ 方法一:将gcc的安装目录/bin放在PATH中;
@ 方法二:使用符号连接的方式,这样做可以仍然使用系统上的旧版本的gcc编译器 -
(1)查看原来的gcc所在的路径:
# which gcc 显示:/usr/bin/gcc, 因此,原来的gcc命令在/usr/bin目录下,将原来的gcc和g++文件更名为gcc447,g++447;
(2)将gcc 5.4.0中的gcc、g++、gcj等命令在/usr/bin目录下分别做一个符号连接:
# cd /usr/bin
# ln -s gcc安装目录/bin/gcc gcc
# ln -s gcc安装目录/bin/g++ g++
这样,就可以分别使用gcc、g++来调用GCC 5.4.0的gcc、g++完成对C、C++程序的编译了。同时,仍然能够通过gcc447,g++447使用旧版本的GCC编译器。
2)源码编译升级安装了gcc后,编译程序或运行其他程序时,有时会出现类似“/usr/lib64/libstdc++.so.6:version 'GLIBCXX_*' not found的问题:
这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,需要将gcc最新版本的动态库替换系统中老版本的动态库;
@ 解决方法
(1)首先检查动态库
=》gcc的动态库依然为旧版本;
(2)执行以下命令,查找编译gcc时生成的最新动态库
# find / -name "libstdc++.so*"
(3)将上述最新动态库libstdc++.so.6.0.21复制到/usr/lib64目录下;修改系统默认动态库的指向即可:
# cd /usr/lib64
# rm -rf libstdc++.so.6
# ln -s libstdc++.so.6.0.21 libstdc++.so.6
4. 参考资料
Linux升级安装gcc:/usr/lib/libstdc++.so.6:version GLIBCXX_* not found
Centos 6.5升级gcc : 源码安装 + rpm安装的更多相关文章
- CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作
CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作 2018年07月05日 00:28:38 String峰峰 阅读数:2614 使用yum安装的MySQL一般版本比较旧,但 ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- ...
- Linux——【rpm、yun、源码包】安装
RPM包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松,因为我们不是在图形界面下.所以我们要 ...
- Linux学习笔记15—RPM包的安装OR源码包的安装
RPM安装命令1. 安装一个rpm包rpm –ivh 包名“-i” : 安装的意思“-v” : 可视化“-h” : 显示安装进度另外在安装一个rpm包时常用的附带参数有:--force : 强制安装, ...
- zabbix 3.2.2 server端(源码包)安装部署 (一)【转】
环境准备: 操作系统 CentOS 6.8 2.6.32-642.11.1.el6.x86_64 zabbix server 172.16.10.150 zabbix agent 172.16.10. ...
- [转] ROS2源码编译和安装
机器人开源操作系统软件ROS在10年后, 终于推出全新架构的ROS2,代号“ardent”.中文意思为“热心的美洲鳖”,看来ROS2要从ROS1的“海龟”变成“土鳖”系列了. 与此同时,ROS2的编译 ...
- (3.2)mysql基础深入——mysql源码阅读工具安装与应用
(3.2)mysql基础深入——mysql源码阅读工具安装与应用 关键字:mysql源码阅读工具 工具列举:一般多用[1][2][3]吧 [1]source insight [2]写字板/记事本 UE ...
- 源码包的安装、rsync同步、inotify监测
一.源码包的安装 1.源码包的作用:yum 使用的是rpm包,rpm包安装的不能指定安装位置 源码包可以按需选择/定制,及时修复bug ,适用于各种平台 2.大致过程:源码包——>make gc ...
随机推荐
- 家庭版记账本app开发进度。开发到现在整个app只剩下关于图表的设计了,具体功能如下
首先说一下自己的功能: 实现了用户的登录和注册.添加收入记账和添加支出记账.粗略显示每条账单基本情况.通过点击每条账单来显示具体的情况, 之后就是退出当前用户的操作. 具体的页面情况如下: 这就是整个 ...
- String、StringBuffer、StringBuilder葫芦三兄弟
今年因为疫情的原因,本打算在读研期间好好做项目,写论文,在今年9月份能找个好工作,但现在迟迟不能开学,也无法正常的给导师打工,所以干脆就打算好好准备工(fan)作(wan)的事儿. 接触Java也有好 ...
- Django 配置访问顺序 ->MTV开发模式
框架模式mvc m-->model 数据库 v-->view 视图 c-->controller 控件逻辑 mtv(django) m-->model 数据库 t--> ...
- python3(十七) nonameFunc
L = list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) print(L) # [1, 4, 9, 16, 25, 36, 49, 64, ...
- 怎么把jmeter汉化?
1.在Jmeter 的bin目录下找到 jmeter.properties 文件 2.找到后复制一份出来用记事本打开,Ctrl+F输入 language 定位找到 #language=en 并且把 ...
- 怎么自定义DataGridViewColumn(日期列,C#)
参考:https://msdn.microsoft.com/en-us/library/7tas5c80.aspx 未解决的问题:如果日期要设置为null,怎么办? DataGridView控件提供了 ...
- Css3 新增的属性以及使用
Css3基础操作 . Css3? css3事css的最新版本 width. heith.background.border**都是属于css2.1CSS3会保留之前 CSS2.1的内容,只是添加了一些 ...
- 多线程高并发编程(4) -- ReentrantReadWriteLock读写锁源码分析
背景: ReentrantReadWriteLock把锁进行了细化,分为了写锁和读锁,即独占锁和共享锁.独占锁即当前所有线程只有一个可以成功获取到锁对资源进行修改操作,共享锁是可以一起对资源信息进行查 ...
- 复习python的__call__ __str__ __repr__ __getattr__函数 整理
class Www: def __init__(self,name): self.name=name def __str__(self): return '名称 %s'%self.name #__re ...
- F - Make It Equal CodeForces - 1065C
题目大意:有n座塔,塔高h[i],每次给定高度H对他们进行削切,要求每次削掉的所有格子数不能超过k个,输出最少削几次才能使所有塔的高度相同. 思路一:差分+贪心 对于每一个高度h,用一个数组让1~h的 ...