You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10下如何将MinGW GCC的C++标准设为默认(无需输-std=c++17)

解决MinGW默认C++标准的设置问题

先直接给你答案:完全不用每次编译都手动敲-std=c++17,我们可以通过几种简单的配置,让你的MinGW gcc默认就用C++14或17这类新标准。

先帮你明确下:你用的gcc 6.3.0版本,默认的C标准是C11——如果不信的话,打开CMD敲g++ -v,输出的最后几行里就能看到默认标准的相关说明。所以确实需要手动指定才能用上更高版本的标准,但我们可以把这个指定变成默认行为。

下面是三种实用的方法,你可以根据自己的需求选:

方法1:设置系统环境变量(全局生效)

这种方法一劳永逸,所有CMD窗口里的g++编译都会自动带上你要的标准参数:

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「系统变量」栏点「新建」:
    • 变量名填CXXFLAGS
    • 变量值填-std=c++17(想要C++14就填-std=c++14)
  • 保存后必须重启所有CMD窗口,环境变量才会生效。之后你直接敲g++ 你的代码.cpp -o 输出.exe,就自动用上C++17了。

方法2:写个批处理文件(按需生效,不全局改)

如果你不想全局修改,只想在自己的代码文件夹里用默认标准,写个小批处理就搞定:

  1. 在你的代码文件夹里新建文本文件,改名成compile.bat
  2. 打开文件粘贴下面的内容:
@echo off
g++ -std=c++17 %1 -o %~n1.exe
  1. 保存后,以后编译只要在CMD里敲compile 你的代码.cpp,就会自动用C++17编译,生成和源码同名的exe文件。

方法3:修改gcc的specs配置文件(永久全局生效)

MinGW的gcc会读取一个叫specs的配置文件,我们可以直接修改它来默认添加编译参数:

  1. 先找到这个文件的位置:CMD里敲gcc -print-file-name=specs,会输出完整路径(比如C:\MinGW\lib\gcc\mingw32\6.3.0\specs)
  2. 先复制一份备份,防止改坏了没法恢复
  3. 用记事本打开原文件,找到*cpp_options:这一行,在末尾加上 -std=c++17
    比如原来的行是*cpp_options: -D__USE_MINGW_ANSI_STDIO=1,修改后变成*cpp_options: -D__USE_MINGW_ANSI_STDIO=1 -std=c++17
  4. 保存文件,之后所有g编译都会默认用C17了。

如果之后要切换标准,只要修改对应的参数或者删掉添加的部分就行。

内容的提问来源于stack exchange,提问作者user10072127

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:02:24