【发布时间】:2015-05-24 09:53:42
【问题描述】:
我是 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/ 中看到了其中一些文件,但缺少诸如 chrono 和 thread 之类的新文件。
在 Mac 上编译 C++11 源代码之前,是否需要安装其他软件包?
【问题讨论】:
-
我 95% 确定这是 stackoverflow.com/questions/14656856/… 的副本
-
@BillLynch 不,我已经在传递标志,并且传递它不会安装丢失的头文件。
-
你能告诉我们你用来编译
src/test.cpp的命令吗? -
@BillLynch 是对的。真正的 C++11 头文件安装在
/usr/lib/c++/v1/中,而不是我在/usr/include/c++/中查找的位置。为了让事情正确编译,我必须将-stdlib=libc++添加到编译器标志中,而不是-std=gnu++11或-std=c++11。 -
赞成反对白痴的反对票。
标签: macos c++11 osx-mountain-lion macports