使-std=c++11成为mac终端中的默认值
Making -std=c++11 the default in mac terminal
当我想要编译时,我需要像这样指定-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,最好使用clang
和clang++
。)
我知道这已经被接受了,但我觉得我有一些建议可以提供。首先,你应该使用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命令行有区别,了解它可以做的一些事情会非常有用。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 具有默认值的引用获取函数
- 当给定默认值时,为什么此模板参数推导失败
- 从具有默认值的部分指定模板类继承时发生SWIG错误,具有不带默认值的正向声明
- 格式化浮点值:返回默认值
- 如何将数组部分初始化为某个默认值?
- asn1c 不会从 asn.1 模块中提取八位字节字符串的默认值
- 创建一个包含 c++ 默认值的环境文件
- C++(和 ROS) - 包含与前向声明引用,设置默认值和类型定义
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- Switch 语句(字符串)一直选择默认值,除非其为零
- 如何使用默认值将枚举声明为 extern
- 如何在提升程序选项中设置矢量<矢量>的默认值<string>
- 如何使用默认值为构造函数中的枚举赋值?
- 变量始终在函数中重置为默认值
- 如何在C++中提供模板化函数作为另一个函数的参数,默认值?
- 函数不返回默认值
- 具有公共范围与专用范围的默认值的C++的不同行为
- 在 c++ 中,如果我创建一个接受一个具有默认值的参数的构造函数 - 它会用作默认(空)构造函数吗?
- 使-std=c++11成为mac终端中的默认值