centos7 升级 gcc 版本

这篇具有很好参考价值的文章主要介绍了centos7 升级 gcc 版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GNU Mirror List

查看动态库版本

strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'

查找gcc生成的最新动态库

find / -name "libstdc++.so*"

一、升级 gcc:

1、查看当前gcc版本

#默认4.8.5
g++ -v 或者 gcc --version

2、下载gcc源码(10.2.0)

wget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.xz

3、解压安装包

tar -xvf gcc-10.2.0.tar.xz

4、下载依赖库

cd gcc-10.2.0
./contrib/download_prerequisites

centos7 升级 gcc 版本

5、安装系统必须包模块

## 编译常用软件包
yum install -y gcc-c++ libstdc++-static ant cmake byacc flex automake libtool binutils-devel bison ncurses-devel gcc kernel-devel libtool libatomic libcurl-devel texinfo

6、生成Makefile文件

./configure --prefix=/usr/local/gcc-10.2.0 --enable-bootstrap --enable-languages=c,c++ --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib

7、编译

make -j4

8、安装

make install

9、配置libstdc++.so

查看libstdc++.so

find / -name "libstdc++.so*"

centos7 升级 gcc 版本

进入libstdc++.so配置目录

 cd /usr/lib64
#备份
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
mv /usr/lib64/libstdc++.so /usr/lib64/libstdc++.so.bak

mv /usr/bin/gcc /usr/bin/gcc485
mv /usr/bin/g++ /usr/bin/g++485
mv /usr/bin/c++ /usr/bin/c++485
mv /usr/bin/cc /usr/bin/cc485

#创建新软连
ln -s /usr/local/gcc-10.2.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-10.2.0/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-10.2.0/bin/c++ /usr/bin/c++
ln -s /usr/local/gcc-10.2.0/bin/gcc /usr/bin/cc

ln -s /usr/local/gcc-10.2.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6
ln -s /usr/local/gcc-10.2.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so
# 验证
gcc --version

方法二:

https://mirrors.aliyun.com/centos-vault/7.5.1804/sclo/x86_64/rh/

https://mirrors.aliyun.com/centos/7.9.2009/sclo/x86_64/rh/Packages/d/

CentOS 7官方源的gcc最新版本是4.8.5,发布于2015年,年代久远且不支持c++14。要编译c++14及以上项目,必须要升级现有版本或者安装高版本的gcc。红帽其实已经编译好了高版本的gcc,但未更新到base和epel这两个常用源中,而是将这些版本放在scl中。
centos7 升级 gcc 版本
centos7 升级 gcc 版本
##列出GCC版本
yum list |grep devtoolset |grep gcc.x86_64

centos7 升级 gcc 版本

1、安装centos-release-scl

sudo yum install centos-release-scl

2、 安装devtoolset,

注意,如果想安装7.版本的,就改成devtoolset-7,以此类推

sudo yum install devtoolset-8*

3、 激活对应的devtoolset,

所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本

# 官方推荐的加载命令
scl enable devtoolset-8 bash

# 第2种 执行安装软件自带的脚本,可以写入启动脚本中
source /opt/rh/devtoolset-x/enable #x为要启用的版本。
gcc -v

这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本,要想随意切换可按如下操作
首先,安装的devtoolset是在 /opt/rh 目录下的,
每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行

source ./enable

4、 直接替换旧的gcc

旧的gcc是运行的/usr/bin/gcc

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
 
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
 
mv /usr/bin/g++ /usr/bin/g++-4.8.5
 
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
 
gcc --version
 
g++ --version

二、升级 gdb

下载镜像

2.1 获取

wget https://ftp.gnu.org/gnu/gdb/gdb-8.3.1.tar.gz

2.2 编译

cd gdb-8.3.1/
./configure
make -j4
make install

建议在安装gcc前,先装gdb的升级,gdb的升级不能用太高版本的gcc编绎,或者在编绎时指定低版本的gcc。
CC=/usr/local/gcc/bin/gcc ./configure

三、升级 cmake

install

3.1 获取CMake源码包

 wget https://cmake.org/files/v3.16/cmake-3.16.9.tar.gz

3.2 解压

tar xvzf cmake-3.16.9.tar.gz

3.3 编译安装

cd cmake-3.16.9/
./bootstrap --prefix=/usr/local/cmake
make -j4 
# 卸载旧版本
yum remove cmake -y

make install

3.4 配置

vi /etc/profile
#增加一行:
export PATH=$PATH:/usr/local/cmake/bin

gcc/g++ 头文件和库文件搜索路径

gcc/g++ 头文件和库文件搜索路径

一、GNU Make

GNU Make官网

DOC

GNU Make是一个工具,它可以控制从程序的源文件生成可执行文件和其他非源文件。

二、configure 配置选项

-help

输出帮助信息.即使是有经验的用户也偶尔需要使用使用’–help’选项,因为一个复杂的项目会包含附加的选项.例如,GCC包里的’configure’脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项.

–prefix=$Home/cdvs_bin_for_arm

这里是最终生成可执行文件的安装目录也就是exe的存放目录。可以根据自己的需要调整。

libstdc++

libstdc++GCC对 C++ Standard Library 的实现。

libc++clang的实现。

libsupc++libstdc++的子集,可以在github找到libsupc++,它是libstdc++的一个子文件夹:
centos7 升级 gcc 版本
libsupc++包含C++最核心的一部分功能,比如:

内存分配:operator new, operator delete等
异常处理
run-time type information (RTTI):dynamic_cast,typeinfo类等
初始化列表:定义了template initializer_list

常见错误:

1、xgcc: fatal error: cannot execute ‘cc1plus’: execvp: No such file or directory

g++ --version

gcc --version

没有版本号的话下载

有的话

运行:

find / -name "cc1plus"  

centos7 升级 gcc 版本
添加到环境变量:

export PATH="$PATH:/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/"

2、 /usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or directory

64位linux 提示这个问题
这个问题是由于缺少32位兼容包,解决办法:

Ubuntu:sudo apt-get install libc6-dev-i386

CentOS:yum -y install glibc-devel.i686

3 Linux中Rust 报错linker ‘cc’ not found

  1. 是因为 gcc 没有装

  2. 还有一种情况就是软链接被移除,
    重新建立软链接

ln -s gcc cc

4、Rust编译libclang错误

错误:thread ‘main’ panicked at 'Unable to find libclang: "the libclang shared library at /usr/lib64/clang-private/libclang.so.7 could not be opened
解决:

$ rpm -qa | grep "llvm-private"
$ rpm -e --nodeps llvm-private-7.0.1-1.el7.x86_64
$ yum install -y clang llvm

错误:thread ‘main’ panicked at 'libclang function not loaded: clang_getTranslationUnitTargetInfo. This crate requires that libclang 3.9 or later be installed on your system, clang版本过低了,centos 7默认是3.4
解决:

$ yum install llvm-toolset-7
$ scl enable llvm-toolset-7 bash #激活clang并检查版本,clang相关依赖已经全部安装了

LLVM架构

深入理解 LLVM架构文章来源地址https://www.toymoban.com/news/detail-425477.html

到了这里,关于centos7 升级 gcc 版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS 7升级gcc/G++版本

            Centos 7默认gcc版本为4.8,有时需要更高版本,只需要执行几条命令,无需下载源码编译编译。 安装centos-release-scl 安装devtoolset 注意,如果想安装7.*版本的,就改成devtoolset-7-gcc*,以此类推 激活对应的devtoolset 查看gcc版本 这条激活命令只对本次会话有效,重启会话后还

    2024年02月06日
    浏览(41)
  • Linux下Centos7 gcc/g++、动态库/静态库(动态/静态链接)

    gcc是对c语言代码进行编译链接,而g++是对c++代码进行编译链接,接下来我们只对gcc进行讲解,g++的使用方法跟gcc是一样的。 编译链接的四个步骤: 1:预处理 2:编译 3:汇编 4:链接 注:这些在后面都会着重讲解 我们先在Date.c 源文件里面写一些c语言代码,我们知道,c语言代码需

    2024年02月05日
    浏览(52)
  • CentOS常见问题应对,升级make和gcc版本

    本文讲解了编译源码过程中的常见问题,以及如何升级make和gcc版本。 点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达 今天讲一个 CentOS 中编译时的常见问题:在编译源码过程中 make 或者 gcc 版本过低导致的异常 configure: error。 具体报错如下: 此问题尤其

    2024年02月01日
    浏览(39)
  • CentOS7升级SSH最新版本(9.4p1)详细步骤

    目录 引言 当前操作系统情况 第一步:下载SSH和SSL安装包 第二步:安装配置Telnet(防止ssh安装失败无法连接) 1、安装Telnet 2、运行Telnet服务 3、移除文件 4、使用Telnet远程连接 第三步:卸载旧版本SSH 第四步:安装依赖包 第五步:升级SSL 1、解压源码包  2、进入源码包执行

    2024年02月04日
    浏览(57)
  • 遇到“c++: 错误:unrecognized command line option ‘-std=c++17’”,CentOS升级GCC版本以支持c++17

    编译时遇到问题: c++: 错误:unrecognized command line option ‘-std=c++17’ 原因:GCC版本太低(CentOS7直接yum安装的GCC版本为4.8.5) 参考:Linux怎样更新Centos下Gcc版本支持C++17? 解决方案: 了解GCC版本及对C++版本的支持情况: GCC Releases GCC版本对C++的支持情况 C++ Standards Support in GCC 其

    2024年02月09日
    浏览(38)
  • CentOS7下rpm包方式升级openssl到安全版本1.1.1q

    参考链接:https://cloud.tencent.com/developer/article/1767718 OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 OpenSSL是Openssl团队的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输

    2024年02月05日
    浏览(44)
  • 【Linux-编译器gcc/glibc升级】CentOS7.9使用NodeJS18时报错/lib64/libm.so.6: version `GLIBC_2.27‘ not found

    文章已收录至https://lichong.work,转载请注明原文链接。 ps:欢迎关注公众号“Fun肆编程”或添加我的私人微信交流经验🤝 最近做一个前端项目Jenkins的自动构建时,项目使用nodejs18,正好公司Jenkins节点有些不够用,就用了台资源空余比较多的服务器用于充当Jenkins节点,配置好

    2024年02月16日
    浏览(44)
  • centos7下升级openssh9.4p1及openssl1.1.1v版本

    背景:客户服务器扫描出一些漏洞,发现和版本有关,漏洞最高的版本是9.3p2,所以我们安装一个openssh9.4p1版本及openssl1.1.1v版本 虽然我们进行了镜像备份,为了安全先安装telnet以防止升级失败无法通过ssh连接服务器 一、安装telnet 1、安装配置telnet,一般Linux系统自带telnet客户

    2024年01月21日
    浏览(57)
  • centos7 或者麒麟V10在线升级SSH为最新的9.2p1版本

    目录 1 升级原因 2 升级步骤 (以下所有步骤都以麒麟V10作为演示) 2.1 查看当前SSH版本 2.2  升级yum 源

    2024年02月05日
    浏览(72)
  • centos7.9和redhat6.9 离线升级OpenSSH和openssl (2023年的版本)

    1.1升级操作 完成升级SSH 参考并感谢up主: 澎湃的福流 BV1s94y1Z7J3

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包