我正在编写一个程序,它将使用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
知道了,我该怎么办?
答案 0 :(得分:5)
从它的外观来看,你没有使用LLVM的libc ++,而是使用GCC的libstdc ++。
在后一种情况下使用std::array
,请使用:
#include <tr1/array>
如果你想使用libc ++和C ++ 11,那么就像KennyTM建议的那样改变你的编译器标志(+1)。
答案 1 :(得分:4)
<array>
,您需要提供-std=c++11
标志来启用它,并为相应的库提供-stdlib=libc++
标志。但是Xcode提供的g ++已经很老了,对C ++ 11没有多少支持。你能切换到铿锵声吗?
clang++ -std=c++11 -stdlib=libc++ mms.cpp -o mms