Wann sollte das Flag „-stdlib=libstdc“ beim Kompilieren mit GCC verwendet werden?
In einigen Szenarien kann das explizite Festlegen von „-stdlib= Das Flag „libstdc“ ist beim Kompilieren mit GCC erforderlich. Hier sind die Umstände:
Unter Linux:
Standardmäßig verwenden Linux-Distributionen libstdc als Standard-C-Bibliothek. Darüber hinaus unterstützen moderne Versionen von GCC von Natur aus C 11 in ihrer gebündelten libstdc . Um C 11-Code unter Linux zu kompilieren, sollte daher die einfache Verwendung des Flags „-std=c 11“ mit g ausreichen:
g++ -std=c++11 input.cxx -o a.out
Auf Pre-Mavericks OS X:
Historisch gesehen war g unter OS X ein Alias für clang . In diesem Zusammenhang war Apples ältere Version von libstdc die Standardeinstellung. Um libc zu nutzen, das C 11-Unterstützung beinhaltete, mussten Sie explizit „-stdlib=libc“ angeben:
g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out
Auf Mavericks und höher OS X:
Beginnend mit OS X Mavericks wurde libc zur Standard-C-Bibliothek. Dementsprechend besteht keine Notwendigkeit, das Flag „-stdlib=" zu verwenden:
clang++ -std=c++11 input.cxx -o a.out
Building gegen libstdc unter OS Anwendungen gegen libstdc werden nicht mehr unterstützt. Vorhandener Code, der mit libstdc kompiliert wurde, funktioniert weiterhin, eine neue Codekompilierung ist jedoch nicht zulässig.
Das obige ist der detaillierte Inhalt vonWann ist das Flag „-stdlib=libstdc' beim Kompilieren mit GCC erforderlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!