Notice: How to compile C++ with C++ 11 support in Mac Terminal
*上面的问题
其实mac里面的不是g++而是clang 我们输入:
g++ --version查看
其实是clang
so linux下的g++ -std=c++11是无效的
那我们我们怎么编译呢?
我们可以用下面的命令行:
clang++ -std=c++11 -stdlib=libc++ -Weverything main.cpp
如果你没有安装Xcode的话你可以用xcrun命令工具:
xrcun clang++ -std=c++11 -stdlib=libc++ -Weverything main.cpp
eg:
$ vi t.cpp
#include <iostream> int main()
{
int* p = nullptr;
std::cout << p << std::endl;
}
$ clang++ -std=c++ -stdlib=libc++ -Weverything t.cpp
$ ./a.out
0x0
-Weverything
was initially built for two reasons:
- discovery: it's pretty hard otherwise to get a list of all available warnings
- black-listing alternative: with gcc, you cherry pick the warnings you wish to apply (white-listing), with
-Weverything
you cherry pick those you do not wish to apply; the advantage is that when moving over to a new version of the compiler, you are more likely to benefit from new warnings
摘自 http://*.com/questions/14181789/how-to-use-clang-with-std-c11-weverything-werror