Linux gcc版本升级
操作环境 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版本升级的更多相关文章
- linux gcc 编译动态类库(.so)和静态类库(.a)
linux gcc 编译动态类库(.so)和静态类库(.a) 我的编译环境 ubuntu desktop 16.04 一:测试代码 测试有3个文件:AB.h,AB.c,test.c //AB.h vo ...
- linux gcc loudong
五事九思 (大连Linux主机维护) 大连linux维护qq群:287800525 首页 日志 相册 音乐 收藏 博友 关于我 日志 spcark_0.0.3_i386.src.t ...
- linux gcc++漏洞:普通用户获得root权限
linux gcc++漏洞:普通用户获得root权限 2012-02-06 10:22:38| 分类: linux安全|举报|字号 订阅 经我测试在RHEL5 / CentOS5 / F ...
- 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 ...
- linux gcc 区分32位或64位编译 && 请问arm存储,是以小端格式还是以大端格式?
linux gcc 区分32位或64位编译 Linux系统下程序如何区分是64位系统还是32位系统 经过对include的翻查,最后确定gcc以__i386__来 进行32位编码,而以__x86_ ...
- 深入剖析 linux GCC 4.4 的 STL string
转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...
- 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 ...
- Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别
昨天在自己的CentOs7.1上写makefile的时候,发现在一个C程序在编译并链接一个已生成好的lib动态库的时候出错.链接命令大概是这样的: [root@typecodes tcpmsg]# g ...
- Linux GCC lib库相互引用,互相依赖(交叉引用)链接解决办法
Linux GCC中,如果lib a依赖b,b又依赖a,链接的时候无论a放在前,还是b放在前,都会提示unrefrence. 解决办法就是: 链接的时候a链接两次,即: -la -lb -la
随机推荐
- Logtail提升采集性能
默认性能限制 为防止滥用消耗过多机器资源,我们对默认安装的Logtail进行了一系列的资源限制.默认安装的Logtail最多日志采集速度为20M/s,20个并发发送. 其他资源限制请参考:启动参数 h ...
- 容器服务kubernetes federation v2实践五:多集群流量调度
概述 在federation v2多集群环境中,通过前面几篇文章的介绍,我们可以很容易的进行服务多集群部署,考虑到业务部署和容灾需要,我们通常需要调整服务在各个集群的流量分布.本文下面简单介绍如何在阿 ...
- SuperSocket性能数据采集的应用程序接口的改动
性能数据采集的应用程序接口作了修改,两个虚方法已经被更改: protected virtual void UpdateServerSummary(ServerSummary serverSummary ...
- Android 隐藏EditText的焦点
在页面的开发过程中,我们可能会遇到这样的情况,打开某个页面(Activity)时,如果该页面中有EditText组建,则会自动弹出软键盘(因为该EditText自动获取焦点了),这样很容易影响用户体验 ...
- [转]ASP.NET WebApi OWIN 实现 OAuth 2.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...
- 如何在 centos 7.3 上安装 caffe 深度学习工具
有好多朋友在安装 caffe 时遇到不少问题.(看文章的朋友希望关心一下我的创业项目趣智思成) 今天测试并整理一下安装过程.我是在阿里云上测试,选择centos 7.3 镜像. 先安装 epel 源 ...
- UVa 1354 Mobile Computing[暴力枚举]
**1354 Mobile Computing** There is a mysterious planet called Yaen, whose space is 2-dimensional. Th ...
- Weblogic/WAS之Full GC监控与计算
在网上看到关于内存回收机制,同大家一起分析探讨.堆内存划分为Eden.Survivor 和 Tenured/Old 空间,如下图所示: Minor GC 会清理年轻代的内存,Major GC 是清理老 ...
- Laravel -- Excel 导入(import) (v2.1.0)
原博客地址 https://www.jianshu.com/p/7287ebdc77bb Install (安装) //> composer.json 中 require中添加如下: " ...
- dotnet 通过 HttpClient 下载文件同时报告进度的方法
本文告诉大家一个简单的方法通过 HttpClient 下载文件,同时报告下载进度 通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsyn ...