操作环境 RHEL/Centos 6/7,在进行内核编译时编译器版本,需要升级gcc编译器,选择gcc-7.3.0。

  http://ftp.gnu.org/gnu/gcc 里面提供所有的gcc版本供下载。

  1、查看当前RHEL/Centos版本:

[root@linuxprobe ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)

  2、查看现有的gcc版本:

[root@linuxprobe ~]# gcc --version
gcc (GCC) 4.8. (Red Hat 4.8.-)
Copyright (C) Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [root@linuxprobe ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8./lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8. (Red Hat 4.8.-) (GCC)

[root@linuxprobe ~]# gcc --version

  3、安装RHEL/Centos7默认的开发工具,包含gcc,g++,make等等一系列工具:

[root@linuxprobe ~]# yum groupinstall "Development Tools"

  4、查看默认动态库:

[root@linuxprobe ~]# strings /usr/lib64/libstdc++.so. | grep GLIBC
GLIBCXX_3.
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.
GLIBC_2.2.5
GLIBC_2.
GLIBC_2.
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

[root@linuxprobe ~]# strings /usr/lib64/libstdc++.so.6 | grep

  5、获取安装包并解压:

[root@linuxprobe ~]# cd /usr/local/src/
[root@linuxprobe src]# wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.xz
[root@linuxprobe src]# tar xvf gcc-7.3.0.tar.xz

  6、安装gcc的依赖软件,gcc的软件包内提供了自动下载需要软件的脚本./contrib/download_prerequisites  ,这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力

[root@linuxprobe src]# cd gcc-7.3.0/
[root@linuxprobe gcc-7.3.0]# ./contrib/download_prerequisites

  7、生成Makefile文件:

[root@linuxprobe gcc-7.3.0]# ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

  8、编译gcc:

[root@linuxprobe gcc-7.3.0]# make -j4    //多核电脑可以添加 “-j4” :make对多核处理器的优化选项,此步骤非常耗时
[root@linuxprobe gcc-7.3.0]# ls /usr/local/bin | grep gcc

  9、安装gcc:

[root@linuxprobe gcc-7.3.0]# make install

  10、配置gcc:

[root@linuxprobe gcc-7.3.]# cd ~
[root@linuxprobe ~]# find /usr/local/src/gcc-7.3./ -name "libstdc++.so*"
/usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.
/usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.
/usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/src/gcc-7.3./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.
/usr/local/src/gcc-7.3./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.
/usr/local/src/gcc-7.3./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/src/gcc-7.3./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.
/usr/local/src/gcc-7.3./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.
/usr/local/src/gcc-7.3./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
[root@linuxprobe ~]# cd /usr/lib64
[root@linuxprobe lib64]# cp /usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0. .
[root@linuxprobe lib64]# mv libstdc++.so. libstdc++.so..old
[root@linuxprobe lib64]# ln -sv libstdc++.so.6.0. libstdc++.so.
‘libstdc++.so.’ -> ‘libstdc++.so.6.0.’

  11、 重启,查看升级后的gcc版本:

[root@localhost ~]# gcc --version

  12、 查看最新动态库: 

[root@localhost ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC 

Linux gcc版本升级的更多相关文章

  1. linux gcc 编译动态类库(.so)和静态类库(.a)

    linux gcc 编译动态类库(.so)和静态类库(.a) 我的编译环境 ubuntu desktop 16.04 一:测试代码 测试有3个文件:AB.h,AB.c,test.c //AB.h vo ...

  2. linux gcc loudong

    五事九思 (大连Linux主机维护) 大连linux维护qq群:287800525 首页 日志 相册 音乐 收藏 博友 关于我     日志       spcark_0.0.3_i386.src.t ...

  3. linux gcc++漏洞:普通用户获得root权限

    linux gcc++漏洞:普通用户获得root权限 2012-02-06 10:22:38|  分类: linux安全|举报|字号 订阅       经我测试在RHEL5 / CentOS5 / F ...

  4. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...

  5. linux gcc 区分32位或64位编译 && 请问arm存储,是以小端格式还是以大端格式?

    linux gcc 区分32位或64位编译   Linux系统下程序如何区分是64位系统还是32位系统 经过对include的翻查,最后确定gcc以__i386__来 进行32位编码,而以__x86_ ...

  6. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

  7. Linux gcc中的LIBRARY_PATH 和 LD_LIBRARY_PATH

    1. GNU 上关于LIBRARY_PATH的说明: LIBRARY_PATH The value of LIBRARY_PATH is a colon-separated list of direc ...

  8. Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别

    昨天在自己的CentOs7.1上写makefile的时候,发现在一个C程序在编译并链接一个已生成好的lib动态库的时候出错.链接命令大概是这样的: [root@typecodes tcpmsg]# g ...

  9. Linux GCC lib库相互引用,互相依赖(交叉引用)链接解决办法

    Linux GCC中,如果lib a依赖b,b又依赖a,链接的时候无论a放在前,还是b放在前,都会提示unrefrence. 解决办法就是: 链接的时候a链接两次,即: -la -lb -la

随机推荐

  1. Spring AOP 的@Aspect

    Spring AOP 的@Aspect   转自:http://blog.csdn.net/tanghw/article/details/3862987 从Spring 2.0开始,可以使用基于sch ...

  2. laravel 验证码手机与提交手机的验证?

    假如我用自己的手机号码获得了验证码,然后在点击提交之前,更换了手机号一栏的input,用一个比如18888888888的手机号进行注册,用之前得到的验证码,是不是会出现注册成功的情况?是否应该考虑验证 ...

  3. Shell echo 命令

    Shell 的echo 指令与PHP的echo指令类似,都是用于字符串的输出.命令格式: echo string 您可以使用echo实现更复杂的输出格式控制. 1.显示普通字符串: echo &quo ...

  4. iptables 过滤条件(Matches)

    iptables可让你设置多种过滤条件,但是某些条件需要核心有提供相关功能才行.Iptables本身內建一般性的Internet Protocol (IP) 过滤条件,也就是說,即时沒载入任何扩充模组 ...

  5. Python的内置方法,abs,all,any,basestring,bin,bool,bytearray,callable,chr,cmp,complex,divmod

    Python的内置方法 abs(X):返回一个数的绝对值,X可以是一个整数,长整型,或者浮点数,如果X是一个复数,此方法返回此复数的绝对值(此复数与它的共轭复数的乘积的平方根) >>> ...

  6. 深入Java线程管理(一):线程的实现方式

    Java的线程实现方式一共有三种,继承Thread.实现Runable接口,实现Callable接口.不过实现Runnable接口与实现Callable接口的方式基本相同,只是Callable接口里定 ...

  7. H3C 配置高级ACL

  8. vue组件中data是个函数

    当我们const vm = new Vue({ el : '#app',   data : { msg:‘hello World’ } })用习惯了,data是一个对象,可到了vue组件 Vue.co ...

  9. H3C 递归查询

  10. vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)

    [注]:  popstate 事件 a.当活动历史记录条目更改时,将触发popstate事件. b.如果被激活的历史记录条目是通过对history.pushState()的调用创建的,或者受到对his ...