5

我正在编写一个程序,它将使用 C++ 标准库的数组容器来保存一些对象。但是,每当我尝试在我的程序中包含以下代码行时:

#include <array>

我在编译时收到以下错误:

75-143-76-177:soft jeffersonhudson$ g++ mms.cpp -o mms
mms.cpp:5:17: error: array: No such file or directory 
75-143-76-177:soft jeffersonhudson$ 

注释掉#include 让我编译得很好。当然,我忽略了一些简单的事情?我已经在 Xcode 中安装了“命令行工具”,我还缺少什么吗?

编辑:

我在我的电脑上找到了数组的位置

/usr/clang-ide/lib/c++/v1

知道了,我该怎么办?

4

2 回答 2

5

<array>在 C++11 中提供,需要提供-std=c++11标志来启用它,并为-stdlib=libc++对应的库提供标志。但是Xcode提供的g++太老了,对C++11的支持不多。你能切换到clang吗?

clang++ -std=c++11 -stdlib=libc++ mms.cpp -o mms
于 2012-09-20T16:29:50.220 回答
5

从外观上看,您使用的不是 LLVM 的 libc++,而是 GCC 的 libstdc++。

std::array在后一种情况下使用,请使用:

#include <tr1/array>

如果您想使用 libc++ 和 C++11,请按照 KennyTM 的建议 (+1) 更改您的编译器标志。

于 2012-09-20T19:22:14.420 回答