Mac OSX 10.7.4, Xcode 4.4.1, Nein <array> header-Datei?
Ich Schreibe ein Programm, das die array-container der C++ - Standard-Bibliothek zu halten einige Objekte. Aber immer, wenn ich versuche, fügen Sie die folgende Zeile von code in meinem Programm:
#include <array>
Erhalte ich die folgende Fehlermeldung beim kompilieren:
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$
Auskommentieren der #include kompilieren lässt mich einfach nur gut. Sicherlich bin ich etwas Blick einfach? Installiert hab ich die "Command Line Tools" in Xcode, bin ich etwas fehlt noch?
EDIT:
Habe ich festgestellt, die Lage des array auf meinem computer
/usr/clang-ide/lib/c++/v1
wissen, dass, was soll ich tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
<array>
ist in C++11, die Sie brauchen, um die-std=c++11
- flag, um es zu aktivieren, und geben Sie die-stdlib=libc++
- flag für die entsprechende Bibliothek. Aber der g++ zur Verfügung gestellt von Xcode ist so alt, das hat nicht viel Unterstützung für C++11. Konnte Sie mit dem Schalter die klappern?vom Aussehen, sind Sie nicht mit LLVM-s libc++, aber GCC libstdc++.
verwenden
std::array
im letzteren Kontext, Verwendung:wenn Sie verwenden möchten libc++ und C++11, dann ändern Sie Ihre compiler-flags wie KennyTM vorgeschlagen (+1).
std::array
wurde ein Teil der C++ standard-Bibliothek. libc++ ist ganz neu, und es ist so angeordnet, wie Sie eine moderne Darstellung der standard-Bibliothek (C++11). so haben Sie zwei standard-Bibliotheken auf osx -- libc++ ist konzipiert für C++11. die Kommandozeilen-Optionen Kenny erwähnt, verändern sich die#include
Suchpfade. GCC libstdc++ für osx ist jetzt ein wenig veraltet (nicht eine schlechte Sache, wenn Sie müssen rückwärts-Kompatibilität) -- es platziertstd::array
in einem Unterverzeichnistr1/
.