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 ...
随机推荐
- Scratch 全套学习资料
链接:https://pan.baidu.com/s/1qX0T2B_zczcLaCCpiRrsnA提取码:xfp8
- MyBatis(三):核心配置文件的重要配置-Log
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...
- CVPR2020文章汇总 | 点云处理、三维重建、姿态估计、SLAM、3D数据集等(12篇)
作者:Tom Hardy Date:2020-04-15 来源:CVPR2020文章汇总 | 点云处理.三维重建.姿态估计.SLAM.3D数据集等(12篇) 1.PVN3D: A Deep Point ...
- 基于 Jepsen 来发现几个 Raft 实现中的一致性问题(2)
Nebula Graph 是一个高性能.高可用.强一致的分布式图数据库.由于 Nebula Graph 采用的是存储计算分离架构,在存储层实际只是暴露了简单的 kv 接口,采用 RocksDB 作为状 ...
- Python常见数据结构-Tuple元组
Python Tuple基本特点 元组与列表类似,不同之处在于元组的元素不能修改. 与字符串和列表一样,可以根据下标进行切片索引. 元组使用小括号,单一元素的元组定义是必须加一个逗号. Python ...
- 23.1 abstract抽象类案例
package day2_抽象类; /* * 基础班老湿,就业班老湿 * 共性 * 属性 姓名,年龄,性别 * 行为 讲课 */ public class AbstractTeacherTest { ...
- ubuntu 虚拟机复制后打开蓝屏解决办法
sudo apt-get install xserver-xorg-lts-utopic sudo dpkg-reconfigure xserver-xorg-lts-utopic reboot
- 挑战全网最幽默的Vuex系列教程:第一讲 Vuex到底是什么鬼
先说两句 官方已经有教程了,为什么还要写这个教程呢?说实话,还真不是我闲着蛋疼,官方的教程真的是太官方了,对于刚入门 Vuex 的童鞋来说,想必看官方的教程,很多地方就如同看圣经一样,比如「欧玛尼玛尼 ...
- PostgreSQL中RECURSIVE递归查询使用总结
RECURSIVE 前言 CTE or WITH 在WITH中使用数据修改语句 WITH使用注意事项 RECURSIVE 递归查询的过程 拆解下执行的过程 1.执行非递归部分 2.执行递归部分,如果是 ...
- Angular input / ion-input ion-searchbar 实现软件盘换行 改 搜索 并且触发搜索方法 Android iOS适用
Angular 实现软件盘 换行 改 搜索 并且除非 搜索方法: Form 必须有 action="javascript: return true;” input / ion-in ...