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

如何在Mac终端中让g++默认启用C++11/14编译标准

让g默认启用C11/14的实用方法(专为竞赛编程优化)

嘿,竞赛编程的小伙伴!我太懂你每次编译代码都要手动敲-std=c++11/-std=c++14的烦躁了——毕竟竞赛里每一秒都要省下来想算法,哪有空在编译参数上浪费时间?下面给你几个简单粗暴的方法,直接让g++默认带上你需要的C++标准参数,完全适配竞赛场景(不用管通用场景的兼容性问题,竞赛里咱只需要自己的代码跑起来就行!)

方法1:给g++设置别名(最快上手)

这是最直接的方式,相当于给g++命令加个“默认后缀”:

  • 临时生效(当前终端):直接在终端里敲这句,之后当前窗口用g++ program.cpp就自动带-std=c++14参数了:
    alias g++='g++ -std=c++14'
    
    (如果更习惯C11就把c++14改成c++11,不过竞赛里C14的特性更实用,推荐用14)
  • 永久生效(所有终端):打开你的shell配置文件(比如bash用户是~/.bashrc,zsh用户是~/.zshrc),把上面那行别名代码加进去,保存后执行:
    source ~/.bashrc
    
    之后每次打开终端,g++都会默认启用C++14标准。

方法2:设置环境变量CXXFLAGS(全局默认)

g会自动读取CXXFLAGS环境变量里的编译参数,所以我们可以把C标准参数塞进去:

  • 临时生效:终端里执行:
    export CXXFLAGS="-std=c++14"
    
  • 永久生效:同样把上面这句加到~/.bashrc或~/.zshrc里,再source一下就行。
    这个方法的好处是,如果你用其他依赖g++的工具(比如某些IDE的编译脚本),也会自动用上这个参数。

方法3:写个极简Makefile(竞赛党进阶必备)

竞赛里经常需要编译优化(比如-O2能让代码跑更快),写个简单的Makefile既能默认启用C++14,还能一键加优化:
创建一个名为Makefile的文件,内容如下:

CC = g++
CFLAGS = -std=c++14 -O2 -Wall # -Wall可以帮你抓一些简单的语法错误,竞赛里也有用
TARGET = program

all: $(TARGET)
$(TARGET): $(TARGET).cpp
	$(CC) $(CFLAGS) $< -o $@

clean:
	rm -f $(TARGET)

之后你只需要在终端敲make就能编译代码,敲make clean就能删掉生成的可执行文件,省心又高效!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 07:42:48