Mac OS X 10.9 编译C++11

Notice: How to compile C++ with C++ 11 support in Mac Terminal

stackoverflow上面的问题

其实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++11 -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://stackoverflow.com/questions/14181789/how-to-use-clang-with-std-c11-weverything-werror 

posted @ 2014-07-14 23:44  肥磊  阅读(2708)  评论(0编辑  收藏  举报