使-std=c++11成为mac终端中的默认值

Making -std=c++11 the default in mac terminal

本文关键字:终端 默认值 mac 成为 -std c++11      更新时间:2023-10-16

当我想要编译时,我需要像这样指定-std=c++11

g++ -Wall -std=c++11 main.cpp -o main

我想知道是否有一个解决方案可以永久设置-std=c++11标志,这样就可以做到:

 g++ -Wall main.cpp -o main

没有标志。

创建一个别名:alias g++='g++ -std=c++11'应该可以做到这一点。

(然而,OS X附带的GCC版本太旧了,不支持C++11,最好使用clangclang++。)

我知道这已经被接受了,但我觉得我有一些建议可以提供。首先,你应该使用c++的makefile,这是我在SO.上用来回答的文件

CFLAGS=-std=c++11 
CFLAGS+=-stdlib=libc++
CC=clang++
#flags for test.c
cc=clang
DEBUG=-g
#warnings
WARNINGS=-Weverything
#always have -Weverything on for SO lol
OPT= -O0 -O1 -O2 -O3 -O4
test: test.cpp
    $(info set CC for compiler)
    $(CC) $(CFLAGS) $< -o $@ $(DEBUG) 
stack: stack.cpp
    $(CC) $(CFLAGS) stack.cpp -o $@ $(DEBUG) $(WARNINGS)
testc: test.c
    $(cc) $< -o $@ $(DEBUG) 

clean:
    rm test

现在,每当我从SO下载一些糟糕的代码时,我都有一个用于c和c++文件的makefile,如果我想的话,我可以很容易地更改标志。

至于bash别名,我建议您将其别名为alias clang++11='clang++ -std=c++11,这样,如果您不想使用c++11标准,就不会覆盖clang++。最后,你可以将我刚才给你看的行添加到你家里或~文件夹中的mac上的.bash_profile中,这将使更改永久化。更改后,运行source .bash_profile以使更改生效。在linux上,我认为该文件名为.bashrc。希望这些技巧能帮助你在使用urc++时,我建议你学习mac命令行,它与linux命令行有区别,了解它可以做的一些事情会非常有用。