Mac OS X 10.9 编译C++11

时间:2023-03-09 01:34:02
Mac OS X 10.9 编译C++11

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

*上面的问题

其实mac里面的不是g++而是clang 我们输入:

g++ --version查看

Mac OS X 10.9 编译C++11

其实是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