Linux安装最新版的gcc13.1.0编译器,支持c++20、23

news2024/10/6 14:36:55

Linux安装最新版的gcc13.1.0编译器,支持c++20、23

最近在写c++20的代码,所以需要升级支持c++20及23的编译器,貌似gcc11就已经支持了c++20了,但是我这里选择了最新的13.1版本。本文全程实操,上机验证通过。

  1. 查看gcc版本

    gcc -v
    gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 
    
  2. 去GUN官网查看最新的gcc版本Index of /gnu/gcc

    请添加图片描述

  3. 下载最新版本,可以在线下载,也可以去官网下载包拖到linux系统下,看到网上说Ubuntu22.10版本可以直接在线安装apt-get install gcc-13,具体不清楚,我用的是20.04:

    wget http://ftp.gnu.org/gnu/gcc/gcc-13.1.0/gcc-13.1.0.tar.gz
    
  4. 解压:

     tar xf gcc-13.1.0.tar.gz
    
  5. 进入目录,安装组件,时间有点久,执行完没反应,因为在下载包,所以不要看没反应直接ctrl+c:

    cd gcc-13.1.0/
    ./contrib/download_prerequisites
    

    安装组件时,可能由于网络问题导致组件安装失败,这时候需要删除失败组件包,重新安装。

    请添加图片描述

  6. 创建构建目录:

    mkdir build && cd build
    
  7. 执行安装并指定安装位置,不指定会安装在/usr/bin/目录下

    ../configure --prefix=/home/ubuntu2004/gcc131 --enable-threads=posix  -enable-checking=release -enable-languages=c,c++ -disable-multilib
    
  8. 编译,我这里用sudo提升权限编译的,不用我会编译失败,-j8采用8线程,但是感觉没啥效果,我这里编译了30多分钟:

    sudo make -j8 
    
  9. 安装:

    sudo make install
    
  10. 到我们指定的安装文件夹里配置环境变量:

    cd /home/ubuntu2004/gcc131
    sudo vim gcc131.env
    

    写入下面内容,写完后:wq保存退出

    export GCC_ME_HOME=/home/ubuntu2004/gcc131
    PATH=$GCC_ME_HOME/bin:/usr/local/bin:$PATH
    export PATH
    LD_LIBRARY_PATH=$GCC_ME_HOME/lib:$GCC_ME_HOME/lib64:/usr/local/lib:/usr/local/lib64:/usr/lib64:/lib64:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
    export CC=$GCC_ME_HOME/bin/gcc
    export CXX=$GCC_ME_HOME/bin/g++
    
  11. 在你用户~目录下更改.bashrc文件,设置命令启用gcc13

    vim .bashrc 
    alias gcc13='source /home/ubuntu2004/gcc131/gcc131.env'
    

    设置完成bash上输入gcc13来使用,可以使用gcc -v来查看当前gcc版本。

    还可以提升新安装的编译器优先级,这样就不会每次重启系统都要执行gcc13来使用了

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 20 --slave /usr/bin/g++ g++ /usr/bin/g++-13  // 注意路径,如果你是像我一样安装到其他路径,那么需要修改一下路径名
    

    当然这样为了兼顾你使用之前旧的编译器,如果你不想使用旧的编译器可以直接删除旧的编译器。

  12. 如果经过上述操作,gcc -v还是旧的版本,需要重启系统。重启还是不行,建议删除包,重新解压安装。

吐槽:tmd,c站某些用户不要个face了是吧,为了一点流量、点赞,瞎tmd抄,抄也行,你倒是上机验证一下啊,那tmd都执行不了!我就是不上机操作,有些错误看都看的出来执行不了。还硬抄。真耽误事,看c站搞了我好几个小时没安装成功。

参考博文:gcc 13.1 编译安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySql 高级-0711

3. 查询截取分析 分析 分析,至少跑一天,看看生产的慢 SQL 情况开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL,并将它抓取出来。explain慢SQL分析Show Profile运维经理 or DBA 进行SQL 数据库服务器的参数调优 总…

QT-QRegExp和QRegularExpression

1.QRegExp qt5.0版本之前正则表示示类是QRegExp,通过它能够筛选出我们想要的数据,它的构造函数如下所示: QRegExp::QRegExp(const QString &pattern, Qt::CaseSensitivity cs Qt::CaseSensitive, QRegExp::PatternSyntax syntax); 其中QRegExp::PatternSyntax syntax用…

【Leetcode】面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 一看不会,一看答案就懂 我们求出两个链表的长度,并求出两个…

【新版系统架构】第十九章-大数据架构设计理论与实践

大数据处理系统架构 大数据处理系统面临挑战 如何利用信息技术等手段处理非结构化和半结构化数据如何探索大数据复杂性、不确定性特征描述的刻画方法及大数据的系统建模数据异构性与决策异构性的关系对大数据知识发现与管理决策的影响 大数据处理系统架构特征 鲁棒性和容错…

分布式ELK 企业级日志分析系统

一、ELK的相关知识 1.ELK简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch:是基于Lucene(一个全文检…

【JUC进阶】12. 环形缓冲区

目录 1、前言 2、基本概述 2.1、什么是环形缓冲区 2.2、结构刨析 2.3、优点 2.4、缺点 3、如何使用 3.1、定义一个环形缓冲区 3.2、Demo使用 1、前言 上一篇《【JUC进阶】11. BlockingQueue》中介绍到ArrayBlockingQueue,在物理上是一个数组,但…

安科瑞智能母线监控在数据中心的应用

引言: 近年来,随着母线槽在建筑及工厂的配电中越来越广泛,母线槽场景运用的越多,随着数据中心建设的快速发展和更高需求,智能母线系统逐渐被应用于机房的末端配电中,具有电流小、插接方便、智能化程度高等…

一百二十八、Kettle——从Hive增量导入到ClickHouse

一、目标 用Kettle把Hive的DWS层数据增量导入到ClickHouse中 工具版本:Kettle:8.2 Hive:3.1.2 ClickHouse21.9.5.16 全量导入请访问拙作链接 http://t.csdn.cn/Rqvuvhttp://t.csdn.cn/Rqvuv 二、前提准备 (一)kettl…

如何在 .NET Core 中使用 Azure Key Vaul

Azure Key Vault是一个安全可靠的存储库,用于存储在.NET Core应用程序中使用的令牌、密钥、密码、证书和其他敏感数据。接下来我们讲讲如何在C#中使用它。 在构建.NET Core应用程序时,我们经常使用各种“秘密”,如客户端ID、访问令牌、密码、…

我的第一个java项目

安装了idea软件且本地通过cmd 命令启动了mysql。还安装了java sdk。 总结spring-boot通过resource下的mapping文件下的文件xml语法来增删查改(因为使用了MyBatis,MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映…

7.12 模型显存/mix-precision

一、完全参考:模型的显存和参数量计算 显存占用模型显存(参数)batch_size每个样本显存(输出和梯度动量) 首先是“运算量”和“参数量”两个概念:参数量:这个比较好理解,例如卷积层中的卷积核c_i*k*k*n_o,其参数量就是相…

CAN转EtherNet/IP网关ethernet/ip协议

JM-EIP-CAN 是自主研发的一款 ETHERNET/IP 从站功能的通讯网关。该产品主要功能是将各种 CAN 总线和 ETHERNET/IP 网络连接起来。 本网关连接到 ETHERNET/IP 总线中做为从站使用,连接到 CAN 总线中根据节点号进行读写。 技术参数 ETHERNET/IP 技术参数 网关做为 E…

【计算机网络】第三章 数据链路层(集线器与交换机)

文章目录 第三章 数据链路层3.8 集线器与交换机总结 第三章 数据链路层 3.8 集线器与交换机 使用 集线器HUB 的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是 CSMA/CD 协议(半双工)。集线器 只工作在物理层&#xff…

UG\NX二次开发 返回视图中的可见对象UF_VIEW_ask_visible_objects

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 返回视图中的可见对象UF_VIEW_ask_visible_objects 效果: 代码: #include "me.hpp" using namespace std; //获取view视图的可见对象 //view = NULL_TAG 当前视图 vector<tag_t>…

Python endswith()函数使用详解

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 endswith函数使用详解 1、指定范围2、str可以传入元组3、空字符串为真4、大小写敏…

STM32L+BC20+MQTT协议传输温湿度,GPS数据到阿里云物联网平台

&#xff08;阿里云&#xff09;STM32LBC20MQTT协议传输温湿度&#xff0c;GPS数据到阿里云物联网 1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板…

飞控仿真软件

飞控仿真是一种在计算机模拟环境中对飞行控制系统进行测试和验证的方法。它通过使用仿真软件和工具来模拟飞行器的物理行为、传感器数据和控制算法的执行&#xff0c;以评估飞行控制系统的性能和稳定性。 原理 物理模型&#xff1a;仿真软件使用物理模型来描述飞行器的运动行为…

成为一名网络安全工程师难吗?

如果对该专业感兴趣且愿意为之努力&#xff0c;那么学起来是十分轻松的&#xff1b;如果不感兴趣且不愿下功夫&#xff0c;学习起来肯定比较难的 需要学什么&#xff1f; 成为网络安全工程师&#xff0c;需要经历3各阶段&#xff1a;初级安全工程师→中级安全工程师→高级安全…

【Linux后端服务器开发】socket套接字

目录 一、socket 套接字概述 二、socket 函数接口 三、IP地址与端口号的网络格式 四、TCP协议的本地通信C语言示例 一、socket 套接字概述 socket 是什么&#xff1f; socket 本质上是一个抽象的概念&#xff0c;它是一组用于网络通信的 API&#xff0c;提供了一种统一的…

宝塔部署前后端分离项目

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 项目部署 ✨特色专栏&…