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

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

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

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

  2、查看现有的gcc版本:

  1. [root@linuxprobe ~]# gcc --version
  2. gcc (GCC) 4.8. (Red Hat 4.8.-)
  3. Copyright (C) Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions. There is NO
  5. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  6.  
  7. [root@linuxprobe ~]# gcc -v
  8. Using built-in specs.
  9. COLLECT_GCC=gcc
  10. COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8./lto-wrapper
  11. Target: x86_64-redhat-linux
  12. 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
  13. Thread model: posix
  14. gcc version 4.8. (Red Hat 4.8.-) (GCC)

[root@linuxprobe ~]# gcc --version

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

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

  4、查看默认动态库:

  1. [root@linuxprobe ~]# strings /usr/lib64/libstdc++.so. | grep GLIBC
  2. GLIBCXX_3.
  3. GLIBCXX_3.4.1
  4. GLIBCXX_3.4.2
  5. GLIBCXX_3.4.3
  6. GLIBCXX_3.4.4
  7. GLIBCXX_3.4.5
  8. GLIBCXX_3.4.6
  9. GLIBCXX_3.4.7
  10. GLIBCXX_3.4.8
  11. GLIBCXX_3.4.9
  12. GLIBCXX_3.4.10
  13. GLIBCXX_3.4.11
  14. GLIBCXX_3.4.12
  15. GLIBCXX_3.4.13
  16. GLIBCXX_3.4.14
  17. GLIBCXX_3.4.15
  18. GLIBCXX_3.4.16
  19. GLIBCXX_3.4.17
  20. GLIBCXX_3.4.18
  21. GLIBCXX_3.4.19
  22. GLIBC_2.
  23. GLIBC_2.2.5
  24. GLIBC_2.
  25. GLIBC_2.
  26. GLIBC_2.3.2
  27. GLIBCXX_DEBUG_MESSAGE_LENGTH

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

  5、获取安装包并解压:

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

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

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

  7、生成Makefile文件:

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

  8、编译gcc:

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

  9、安装gcc:

  1. [root@linuxprobe gcc-7.3.0]# make install

  10、配置gcc:

  1. [root@linuxprobe gcc-7.3.]# cd ~
  2. [root@linuxprobe ~]# find /usr/local/src/gcc-7.3./ -name "libstdc++.so*"
  3. /usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.
  4. /usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.
  5. /usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
  6. /usr/local/src/gcc-7.3./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.
  7. /usr/local/src/gcc-7.3./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.
  8. /usr/local/src/gcc-7.3./prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
  9. /usr/local/src/gcc-7.3./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.
  10. /usr/local/src/gcc-7.3./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.
  11. /usr/local/src/gcc-7.3./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
  12. [root@linuxprobe ~]# cd /usr/lib64
  13. [root@linuxprobe lib64]# cp /usr/local/src/gcc-7.3./stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0. .
  14. [root@linuxprobe lib64]# mv libstdc++.so. libstdc++.so..old
  15. [root@linuxprobe lib64]# ln -sv libstdc++.so.6.0. libstdc++.so.
  16. libstdc++.so.’ -> libstdc++.so.6.0.’

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

  1. [root@localhost ~]# gcc --version

  12、 查看最新动态库: 

  1. [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. Logtail提升采集性能

    默认性能限制 为防止滥用消耗过多机器资源,我们对默认安装的Logtail进行了一系列的资源限制.默认安装的Logtail最多日志采集速度为20M/s,20个并发发送. 其他资源限制请参考:启动参数 h ...

  2. 容器服务kubernetes federation v2实践五:多集群流量调度

    概述 在federation v2多集群环境中,通过前面几篇文章的介绍,我们可以很容易的进行服务多集群部署,考虑到业务部署和容灾需要,我们通常需要调整服务在各个集群的流量分布.本文下面简单介绍如何在阿 ...

  3. SuperSocket性能数据采集的应用程序接口的改动

    性能数据采集的应用程序接口作了修改,两个虚方法已经被更改: protected virtual void UpdateServerSummary(ServerSummary serverSummary ...

  4. Android 隐藏EditText的焦点

    在页面的开发过程中,我们可能会遇到这样的情况,打开某个页面(Activity)时,如果该页面中有EditText组建,则会自动弹出软键盘(因为该EditText自动获取焦点了),这样很容易影响用户体验 ...

  5. [转]ASP.NET WebApi OWIN 实现 OAuth 2.0

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...

  6. 如何在 centos 7.3 上安装 caffe 深度学习工具

    有好多朋友在安装 caffe 时遇到不少问题.(看文章的朋友希望关心一下我的创业项目趣智思成) 今天测试并整理一下安装过程.我是在阿里云上测试,选择centos 7.3 镜像. 先安装 epel 源 ...

  7. UVa 1354 Mobile Computing[暴力枚举]

    **1354 Mobile Computing** There is a mysterious planet called Yaen, whose space is 2-dimensional. Th ...

  8. Weblogic/WAS之Full GC监控与计算

    在网上看到关于内存回收机制,同大家一起分析探讨.堆内存划分为Eden.Survivor 和 Tenured/Old 空间,如下图所示: Minor GC 会清理年轻代的内存,Major GC 是清理老 ...

  9. Laravel -- Excel 导入(import) (v2.1.0)

    原博客地址 https://www.jianshu.com/p/7287ebdc77bb Install (安装) //> composer.json 中 require中添加如下: " ...

  10. dotnet 通过 HttpClient 下载文件同时报告进度的方法

    本文告诉大家一个简单的方法通过 HttpClient 下载文件,同时报告下载进度 通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsyn ...