Mac OS X 10.8.2(Mountain Lion)上缺少C ++ 11标头

时间:2015-03-20 21:09:57

标签: macos c++11 osx-mountain-lion macports

我是Mac的新手。我有一些Linux和Windows C ++ 11源码使用Boost我想在这台Mac上构建。安装的MacPort(我应该使用Homebrew吗?)然后成功运行命令,如:

sudo port install cmake
sudo port install boost
sudo port install openssl
sudo port install gcc49
sudo port install gcc_select
sudo port install --set gcc mp-gcc49

CMake正确找到Boost 1.57.0并设置makefile。但是当我运行make时,它似乎无法找到普通的C ++ 11标题,例如“chrono”:

In file included from ../src/test.cpp:10:
../src/test_private.hpp:33:10: fatal error: 'chrono' file not found
#include <chrono>
         ^
1 error generated.

的确,当我去查找C ++头文件时,我会在/usr/include/c++/4.2.1/中看到其中一些文件,但chronothread等新文件丢失了。

在我可以在Mac上编译C ++ 11源代码之前,是否需要安装另一个软件包?

1 个答案:

答案 0 :(得分:1)

Apple提供的编译器/工具Xcode带有两个std :: lib实现:

  1. gcc的libstdc ++,版本4.2。
  2. 的libc ++
  3. 第一个非常非常老,并且不支持C ++ 11中的任何内容,例如<chrono>。第二个支持C ++ 11非常好,但只能用于clang而不是gcc。 clang附带Xcode。

    安装Xcode后还需要安装命令行工具:

    xcode-select --install