繁体   English   中英

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

[英]C++11 headers missing on Mac OS X 10.8.2 (MountainLion)

我是Mac的新手。 我有一些使用Boost的Linux和Windows C ++ 11源,我想在此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源代码之前,是否需要安装另一个软件包?

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

  1. gcc的libstdc ++,版本4.2。
  2. 的libc ++

第一个非常非常老,并且不支持C ++ 11中的任何东西,例如<chrono> 第二个很好地支持C ++ 11,但是只能与clang一起使用,不能与gcc一起使用。 clang随Xcode一起提供。

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

xcode-select --install

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM