2

在Mac上用clang++命令编译C++的时候, 总是有 关于C++11的警告,

比如 warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]

诸如此类的警告太多,

本来我想无视他的, 但是现在某些特性甚至成为了错误......

比如 列表初始化vector, error: non-aggregate type 'vector<int>' cannot be initialized with an initializer list.

需要在编译的时候添加 -std=c++11 才行.

我比较懒, 每次编译添加 -std=c++11 感觉很累.

所以问题就是,

我怎样设置clang (我不知道clang是否可以设置), 使得我在编译C++的时候, 不需要添加 -std=c++11 就支持C++11的特性 ?

运行环境, OS X 10.11.3

clang --version
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.3.0
Thread model: posix

谢谢?

Yang 144
2016-02-05 提问
2 个回答
4

已采纳

并不能直接设置 但我们可以曲线救国

如果你用的是 bash

echo "alias g++='g++ -std=c++11'" >> ~/.bashrc'
source ~/.bashrc

zsh的话

echo "alias g++='g++ -std=c++11'" >> ~/.zshrc'
source ~/.zshrc

这样 g++ 就自带该参数了 或者你可以用 g++11之类的别名

2

我不知道怎么设置,但是你可以写个Shell脚本,哈哈哈:

#!/bin/sh
clang++ -std=c++11 "$@"

撰写答案

推广链接