配置sublime的中的C++编译器(.sublime-build),实现C++20

GCC 4.8: 支持 C++11 (部分)
GCC 4.9: 支持 C++11 和 C++14 (部分)
GCC 5: 完全支持 C++14
GCC 6: 支持 C++14 和 C++17 (部分)
GCC 7: 支持 C++17 (大部分)
GCC 8: 完全支持 C++17,部分支持 C++20
GCC 9: 支持更多的 C++20 特性
GCC 10: 支持大部分 C++20 特性
GCC 11: 更全面地支持 C++20
GCC 12: 支持几乎所有的 C++20 特性
GCC 13 及以后: 增加对 C++20 的完全支持并开始对 C++23 进行支持

如果您发现您并未配置好您的C++,或者说您觉得当前的版本不能支撑日常的学习,那么您需要下载一个

https://github.com/niXman/mingw-builds-binaries/releases

下载之后,解压到一个你知道的文件夹中,打开解压的文件路径,发现有一个bin文件打开他之后,复制上方的文件路径测试一下 g++ 的版本。

环境的配置

工具(tools)— > 编译系统 -----> 新建编译系统… ,将会生成一个*.sublime-build文件,在其中配置C++的JSON文件,当然你也可以修改本身就有的编译文件。

把下列代码复制到上面提到的那个文件中,保存,再次选中刚刚编辑的JSON文件就能编译C++了。

{  "shell_cmd": "g++  -finput-charset=UTF-8 -fexec-charset=GBK -Wall \"${file_name}\" -o \"${file_base_name}\" && start cmd /c \"\"${file_base_name}\" & pause\"",  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$","working_dir": "${file_path}",  "selector": "source.c++",  "encoding": "gbk",  
}
基础配置法

默认情况下,g++ 编译器通常不会使用最新的 C++ 标准,而是使用一个稳定的默认标准(通常是一个较旧的标准,如 C++14 或 C++17),以确保与旧代码的兼容性。因此,如果你不显式指定 -std=c++20 或 -std=c++23,编译器可能会使用较旧的标准进行编译,这会导致使用新标准中的特性时出现错误。

所以,如果我们想使用最新的编译方式,我们必须要参考上文,我们的编译器最大支持的C++版本,从而更新我们的JSON文件,达到使用最新版本的C++进行编译。

具体更改只有一行代码

{  "shell_cmd": "g++ -std=c++23 -finput-charset=UTF-8 -fexec-charset=GBK -Wall \"${file_name}\" -o \"${file_base_name}\" && start cmd /c \"\"${file_base_name}\" & pause\"",  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$","working_dir": "${file_path}",  "selector": "source.c++",  "encoding": "gbk",  
}

深入解析
{  "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall \"${file_name}\" -o \"${file_base_name}\" && start cmd /c \"\"${file_base_name}\" & pause\"",  //编译命令,使用C++20标准,指定输入和输出编码为UTF-8和GBK,并启用所有警告。如果编译成功,则启动一个新的命令行窗口运行生成的可执行文件,并在运行结束后暂停窗口。"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", // wrong answer 正则表达式匹配文件名等信息。   "working_dir": "${file_path}",  // working_dir 编译的工作区"selector": "source.c++",  // 对象"encoding": "gbk",  // encoding 编码 : 选择 gbk(国标:包含所有的汉字) "variants":  [  {  "name": "Single File Build", // 只编译 "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall \"${file_name}\" -o \"${file_base_name}\""  },  {  "name": "Single File Run",  //只运行"shell_cmd": "start cmd /c \"\"${file_base_name}\" & pause\""  },  {  "name": "Single File Build & Run", // 编译加运行 "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall \"${file_name}\" -o \"${file_base_name}\" && start cmd /c \"\"${file_base_name}\" & pause\""  },  // 下面为多文件编译 , 请勿使用 。{  "name": "Multiple Files Build",  "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall *.cpp -o \"${file_base_name}\""  },  {  "name": "Multiple Files Run",  "shell_cmd": "start cmd /c \"\"${file_base_name}\" & pause\""  },  {  "name": "Multiple Files Build & Run",  "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall *.cpp -o \"${file_base_name}\" && start cmd /c \"\"${file_base_name}\" & pause\""  }  ]  }

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

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

相关文章

ES中的数据类型学习之ARRAY

Arrays | Elasticsearch Guide [7.17] | Elastic 中文翻译 :Array Elasticsearch 5.4 中文文档 看云 Arrays In Elasticsearch, there is no dedicated array data type. Any field can contain zero or more values by default, however, all values in the a…

SpringBoot 自动配置原理

一、Condition Condition 是在 Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操 作。 思考: SpringBoot 是如何知道要创建哪个 Bean 的?比如 SpringBoot 是如何知道要创建 RedisTemplate 的? …

mysql的B+树索引结构介绍

一、B树 特性: 所有的叶子结点中包含了全部关键字的信息,非叶子节点只存储键值信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接,所有的非终端结点可以看成是索引部分&#xff0…

MySQL数据库基本用法

了解数据库基本概念 什么是数据库? • 长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库” MySQL数据库的特点 • 开源免费,小巧但功能齐全 • 可在Windows和Linux系统上运行 • 操作方便,…

昇思25天学习打卡营第22天|munger85

LSTMCRF序列标注 我们希望得到这个模型来对词进行标注,B是开始,I是实体词的非开始,O是非实体词。 我们首先需要lstm对序列里token的记忆,和计算每个token发到crf的分数,发完了再退出来,最后形成1模型。那么…

免费可视化工具大显身手:公司财务报表一键生成

面对海量的财务数据,如何快速、准确地提炼出有价值的信息,并以直观易懂的方式呈现给管理层及利益相关者,成为了每一家企业面临的重大挑战。 传统财务报表编制过程繁琐,不仅耗时耗力,还容易出错。而一些可视化工具&…

Java学习笔记(四)控制流程语句、循环、跳转控制语句

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍Java控制流程语句、循环、跳转控制语句使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题…

Java多线线程-----等待唤醒机制(wait notify)

目录 一.等待唤醒机制简介: 二.synchronized,wait(),notify(): 三.等待唤醒机制案例: 例题一: 例题二: 四.什么时候释放锁—wait()、notify() 一.等待唤醒机制简介: 由于线程之…

pyqt5制作音乐播放器(第三版)

这次接入了数据库,增加了翻页模式,更新了功能跳转之间的细节 数据设计: 收藏 like1时表示被收藏,展示show0的时候表示表数据被搜索 from peewee import Model, PrimaryKeyField, CharField, BooleanField, MySQLDatabase,Integer…

【区块链+绿色低碳】基于区块链的碳排放管理系统 | FISCO BCOS应用案例

目前业内的碳排放核查方式主要依靠于第三方人工核查、手动填报数据,然后由具备有认证资质的机构进行核验 盖章。但在此过程中存在数据造假的情况,给碳排放量核算的准确性、可靠性带来挑战。 中科易云采用国产开源联盟链 FISCO BCOS,推出基于…

搭建博客系统#Golang

WANLI 博客系统 项目介绍 基于vue3和gin框架开发的前后端分离个人博客系统,包含md格式的文本编辑展示,点赞评论收藏,新闻热点,匿名聊天室,文章搜索等功能。 项目已经部署并运行,快速开发可以查看博客&am…

培训第十一天(nfs与samba共享文件)

上午 1、环境准备 (1)yum源 (一个云仓库pepl仓库) [rootweb ~]# vim /etc/yum.repos.d/hh.repo [a]nameabaseurlfile:///mntgpgcheck0[rootweb ~]# vim /etc/fstab /dev/cdrom /mnt iso9660 defaults 0 0[rootweb ~]# mount -a[…

JavaSE--基础语法--继承和多态(第三期)

一.继承 1.1我们为什么需要继承? 首先,Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程…

Java之数组应用-冒泡排序-二分查找

冒泡排序 冒泡(Bubble Sort)排序是一种简单排序算法,它通过依次比较交换两个相邻元素实现功能。每一次冒泡会让至少一个元素移动到它应该在的位置上,这样 n 次冒泡就完成了 n 个数据的排序工作。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”…

实在智能RPA助力三大运营商用“AI+RPA”打造新质生产力!

近年来,人工智能及自动化技术的突破性进展,正深刻地影响和重塑全球的生活生产模式。 作为我国现代化和数字化进程中的先行军的运营商行业,以中国电信、中国联通和中国移动等为代表的运营商企业,正致力于把握这一历史机遇&#xff…

SpringBoot项目配置多环境env

javaSpringBoot项目多环境配置 为什么maven Profiles 救命项目的pom文件管理 为什么 项目里面需要集成测试环境、开发、生产、多云环境,不仅需要application.yml,还需要加载别的config配置文件 故,我需要便捷多环境配置管理 maven Profiles 救命 项目的…

MySQL练手 --- 1934. 确认率

题目链接:1934. 确认率 思路 由题可知,两个表,一个表为Signups注册表,另一个表为Confirmations信息确认表,表的关联关系为 一对一,且user_id作为两个表的连接条件(匹配字段)&#…

【C# WInForm】将TextBox从输入框设置为文本框

1.需求情形: textbox作为最常用的控件之一,通常是用来输入文本信息或者显示文字,但是如果要在界面中显示大段文本,一个带有边框、可选中的文本样式似乎不合适。像这样: 我需要的是这段文字不仅能跨行,而且…

c++笔记2

目录 2.2 栈底(bottom) } 大数乘大数 节点:包含一个数据元素及若干指向子树分支的信息 。 节点的度:一个节点拥有子树的数目称为节点的度 。 叶子节点:也称为终端节点,没有子树的节点或者度为零的节点…

elmentui this.$confirm使用模板字符串构建HTML结构

tip(){const checkingList [];const findList[入会1,入会2,入会3] //数组const sueccList [{name:入会,suecc:1000,numcot:1000},{name:aaaaa,suecc:222,numcot:3333}] //数组对象var message// 使用模板字符串构建HTML结构if(sueccList.length>0){message <div>…