之前讲过一次关于Centos7的GCC版本的升级,这里,主要使用源码对GCC进行升级,即在安装完成后不用再切换GCC环境。
1 切换到root属性
su
[root@localhost ~]# yum -y install wget
2 下载GCC源码

以下命令会放在 usr/local/ 下面

[root@localhost ~]#wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz
3 解压压缩包
[root@localhost ~]# cd /usr/local/
[root@localhost local]# tar -zxvf gcc-4.9.2.tar.gz
4 下载编译安装的依赖包
4.1 假设有网的时候
[root@localhost local]# cd gcc-4.9.2
[root@localhost gcc-4.9.2]# ./contrib/download_prerequisites
4.2 假设没网的情况下

如果Linux没有网络连接(我主机和虚拟机是Host-only,不能联网,所以另外想办法),则用Windows上网下载这几个包,对应连接:
ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz
然后解压并移动到gcc-4.9.2下面:
tar -xjf gmp-4.3.2.tar.bz2
tar -xjf mpfr-2.4.2.tar.bz2
tar -xzf mpc-0.8.1.tar.gz
mv gmp-4.3.2 gcc-4.9.2/gmp
mv mpfr-2.4.2 gcc-4.9.2/mpfr
mv mpc-0.8.1 gcc-4.9.2/mpc
【注】这样的做法好处是,不用单独编译gmp、mpfr和mpc三个包,放在gcc源码下面一起编译(事实上这也是gcc-4.9.2/contrib/download_prerequisites脚本的做法,个人感觉更简洁些)。第一种方法与第二种方法本人都有操作过,可以正常进行(第一种方式如果网络不行往往容易失败)。

5 编译安装GCC
[root@localhost gcc-4.9.2]# yum install -y  gcc-c++  glibc-static gcc //为避免出错建议安装此包
[root@localhost gcc-4.9.2]#  ./configure --prefix=/usr/local/gcc  --enable-bootstrap  --enable-checking=release --enable-languages=c,c++ --disable-multilib
[root@localhost gcc-4.9.2]# make
[root@localhost gcc-4.9.2]# make install

编译参数说明:
–prefix=/usr/local/ 指定安装路径
–enable-bootstrap 用第一次编译生成的程序进行第二次编译,然后用再次生成的程序进行第三次编译,并且检查比较第二次和第三次结果的正确性,也就是进行冗余的编译检查工作。 非交叉编译环境下,默认已经将该值设为 enable,可以不用显示指定;交叉编译环境下,需要显示将其值设为 disable。
–enable-checking=release 以软件发布版的标准来对编译时生成的代码进行一致性检查;设置该选项为 enable并不会改变编译器生成的二进制结果,但是会导致编译的时间增加;该选项仅支持gcc编译器; 总体而言,对于上面这个选项,机器的硬件配置较低,以及不愿等待太久编译时间的童鞋,可以设置为 disable;但是这会增加产生未预期的错误的风险,所以应该慎用。 可以同时设置 --disable-bootstrap 与 --disable-checking,这对编译过程的提速很有帮助。
–enable-threads=posix 顾名思义,启用posix标准的线程支持 ,要让程序能在符合POSIX规范的linux发布版上正确运行,就应该启用该选项,取决于宿主或目标操作系统的类型,其它可用值有:aix,dec,solaris,win32等,如果你是其它的类UNIX系统,就需要设置相应的值。
–enable-languages=c,c++ 支持的高级语言类型和运行时库,可以设置的所有语言包括 ada,c,c++,Fortran,java,objc,obj-c++,GO 等语言。这里只开启了c和c++,因为支持的语言越多,就需要安装越多的相应静态与动态库,还有五花八门的依赖库,这会让管理变得困难,体积也会变得庞大。
–disable-multilib 如果你的操作系统是32位,默认就已经设置为 disable,这意味着gcc仅能生成32位的可执行程序;如果你的操作系统是64位,默认就已经设置为 enable,这意味着用gcc编译其它源文件时可以通过 -m32 选项来决定是否生成32位机器代码。如果在64位系统上,要禁止生成32位代码, 设置 --disable-multilib。
–enable-gather-detailed-mem-stats 允许收集详细的内存使用信息,如果设置该参数为 enable,则将来编译好的gcc可执行程序,可以通过 -fmem-report 选项来输出编译其它程序时的实时内存使用情况。
–with-long-double-128 指定 long double 类型为128位(16字节!);设置为 without,则 long double类型将为64位(8字节),这将与普通的 double 类型一样。 基于 Glib 2.4以上版本编译时,默认已经是128位。

【注】编译一般需要比较久的时间,耐心等待

以上步骤执行完毕后,就意味着GCC的安装已经安装完毕了,有点类似我们的JDK安装,再安装后,需要配置GCC的环境。
导出环境变量

1 输入 gcc -v 命令查看当前的gcc版本,发现gcc的版本仍然是原来的 4.8.5

[root@localhost gcc-4.9.2]# gcc -v
gcc (GCC) 4.8.5 20120313 (Red Hat 4.8.5-16)
Copyright 2010 Free Software Foundation, Inc.

2 编写环境变量的路径

[root@localhost gcc-4.9.2]# vim /etc/profile.d/gcc.sh
输入 : export PATH=/usr/local/gcc/bin:$PATH (即gcc的安装路径)

3 激活环境变量

[root@localhost gcc-4.9.2]# source /etc/profile.d/gcc.sh
[root@localhost gcc-4.9.2]# gcc -v
gcc (GCC) 4.9.2
Copyright (C) 2015 Free Software Foundation, Inc.
导出头文件

通过建立文件夹的软连接

[root@localhost gcc-4.9.2]# ln -sv /usr/local/gcc/include/ /usr/include/gcc
"/usr/include/gcc" -> "/usr/local/gcc/include/"
导出库文件
[root@localhost gcc-4.9.2]# vim /etc/ld.so.conf.d/gcc.conf
/usr/local/gcc/lib64
[root@localhost gcc-4.9.2]# ldconfig -v
[root@localhost gcc-4.9.2]# ldconfig -p |grep gcc //验证是否导出

到这里GCC也已经安装完毕了,这下是可以安装百度云盘的rpm文件的,但后来我也没安装,因为发现没必要了,通过一些teamviewer这些来传就行,当然,现在teaviewer的新版本确实很烦人,不好验证通过。有一款远程控制为向日葵,美中不足的是,还要收费,也没有teamviewer那样友好的文件传输系统,只能远程控制,不知道是不是我在另一条机器上没有用户的登陆,但是真的很鸡肋,买了个会员还是没有文件传输功能,貌似有个高级会员才有,好坑!!!!!

另外需要注意,如果您的程序之前跑的是一个gcc >= 4.9.2的环境,你可以通过查看该博文的第二方法 如果您已经通过第二种方式安装过高版本的gcc,这个时候,会发现 scl enable devtoolset-* bash 不行了,不能再切换GCC的环境了,并不是GCC把它覆盖了,而是以上我们已经重新配置了系统的GCC环境,所以这个时候使用命令

`【用其中的一个即可完成切换】

source /opt/rh/devtoolset-7/enable
source scl_source enable devtoolset-7`

【Centos7】GCC版本编译升级相关推荐

  1. gcc版本降级/升级

    原文:https://blog.csdn.net/qq_31175231/article/details/77774971 更改gcc默认版本(gcc版本降级/升级) Ubuntu系统升级到16.04 ...

  2. linux下gcc更新,Linux gcc版本如何升级

    操作环境 Red-hat 6.2 64bit,yum安装自带版本4.4.7,不能支持C++11的特性,需要升级到4.8.2,本文主要操作如下. 简易安装 获取安装包并解压 wget http://ft ...

  3. 红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)

    前言: 本地一台redhat linux虚拟机已经安装了qt5.13.1以及mysql80 详细的安装流程可通过如下链接查看 linux 安装qt    安装mysql 在qt的数据库编程阶段,需要对 ...

  4. Ubuntu的 g++ gcc版本升降级

    更改gcc默认版本(gcc版本降级/升级) ### 以降级到gcc-6为例 >* sudo apt install gcc-6 g++-6 >* sudo update-alternati ...

  5. linux gcc版本的选择,linux下gcc版本更改

    /usr/bin/g++*查看结果如下 /usr/bin/gcc-->gcc-5,  /usr/bin/gcc-5, /usr/bin/gcc-ar-5, /usr/bin/gcc-ar--&g ...

  6. centos7升级gcc版本,无需手动下载源码编译

    centos7升级gcc版本,无需手动下载源码编译 第一步: 安装centos-release-scl 第二步: 安装devtoolset 第三步: 激活对应的devtoolset 第四步: 查看版本 ...

  7. linux centos7 升级gcc版本 使用 yum centos-release-scl devtoolset-8-gcc* 非源码编译

    目录 第一步: 安装centos-release-scl 第二步: 安装devtoolset 第三步: 激活对应的devtoolset 第四步: 查看版本 切换gcc版本 直接替换旧的gcc Cent ...

  8. centos7 升级 gcc 版本

    GNU Mirror List 查看动态库版本 strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI' 查找gcc生成的最新动态库 find / -name ...

  9. 利用 scl 为 CentOS 升级 gcc 版本

    利用 scl 为 CentOS 升级 gcc 版本 (一)背景 在搞 dpvs 期间遇到的一个问题,在编译 dpdk 程序时会根据所在服务器的 cpu 所拥有的指令集,为了尽可能提高程序效率,将较新的 ...

  10. linux下升级g 版本,linux下升级gcc版本(gcc-7)

    ubuntu16.04的自带gcc版本为gcc-5,因为安装pl-slam的需要升级到gcc-7,可以通过以下命令查看你的gcc版本 gcc --version 通过apt工具对gcc进行升级 sud ...

最新文章

  1. 【学习笔记】线性代数全家桶(在编程竞赛中的应用)
  2. Fedora20下安装编译环境
  3. 无线通信原理及协议栈(ZigBee、蓝牙等)解析
  4. php常用的数组函数及功能,PHP 常用数组函数 (1)
  5. int、long、long long __int64取值范围
  6. php 递归创建目录、递归删除非空目录、迭代创建目录
  7. MySQL学习笔记_10_MySQL高级操作(下)
  8. php执行先后顺序_PHP程序执行的过程原理
  9. linux集群服务有什么用,使用MOSIX搭建Linux的高性能集群服务
  10. Java基础知识强化51:经典排序之桶排序(BucketSort)
  11. 高光谱成像技术在茶叶中的应用研究进展
  12. 两台服务器ubuntu20.x 直接文件共享,文件挂载 nfs
  13. Python网络编程、爬虫之requests模块使用
  14. HoloToolkit/unity远程实时传输视频
  15. github 仓库中文名_Github仓库重命名
  16. MQL5 COOKBOOK - 以 MQL5 编写的多币种 EA,利用限价订单工作
  17. 怎么制作你的第一个机器人
  18. 【Python123】鸡兔同笼
  19. 摄像头各参数的意义_如何选择摄像头,需要考虑那些参数
  20. Ubuntu 下apache2 虚拟主机配置

热门文章

  1. iOS模拟器发送通知和UI测试
  2. JAVA管理信息系统答辩ppt,个人信息管理系统答辩ppt
  3. 专访任玉刚:从菜鸟到资深工程师的进阶之路
  4. SSD人脸检测以及FDDB检测结果分析
  5. [运放滤波器]1_理想运放_虚短虚断
  6. Linux的远程传输文件scp及出现Permission denied (publickey).lost connection问题解决方法
  7. 企业微信支付提示请在微信客户端打开链接_微信h5支付?
  8. 封装继承多态_继承重写重载
  9. 考华为云认证的注意事项、认证费用
  10. 关于FAST迅捷FWR310无线路由器桥接移动光猫吉比特网关的问题