Kann ich C++11 mit Xcode verwenden?

Lesezeit: 3 Minuten

Kann ich C11 mit Xcode verwenden
Villintehaspam

Ich erwäge die Verwendung einiger C++11-Features (wie z auto zum Beispiel) in einigen plattformübergreifenden Projekten (Windows+Mac). Unter Windows unterstützt Visual Studio Teile des kommenden C++11-Standards, der es mir ermöglichen würde, Teile der Codebasis zu vereinfachen, sodass ich natürlich daran interessiert wäre, diese Features zu verwenden.

Aber soweit mir bekannt ist, unterstützt die aktuelle XCode-Version (3.2.4 + GCC 4.2) überhaupt keine C++11-Features. Kann ich die GCC-Version oder die CLang-Version irgendwie aktualisieren? Oder sollte ich mir einfach auf die Zunge beißen und warten, bis Apple irgendwann in der Zukunft eine neue Version verpackt?

  • Schauen Sie sich hier und da die Antworten an.

    – F’x

    1. Januar 11 um 13:57 Uhr

  • Ein positiveres Ergebnis finden Sie unter: stackoverflow.com/questions/837992/update-gcc-on-osx

    – David Rodríguez – Dribeas

    1. Januar 11 um 16:24 Uhr

  • In Bezug auf Clang: Ich glaube, dass es kürzlich eine vernünftige C++03-Unterstützung erreicht hat, aber C++0x ist immer noch ein weit entferntes Ziel. Zum Beispiel ist die Unterstützung von Variadic-Templates in Arbeit und Bewegungssemantik/rvalue-Referenzen wurden noch nicht implementiert.

    – Matthias M.

    4. Januar 11 um 15:47 Uhr

  • Variadic-Vorlagen funktionieren bei mir gut mit Clang.

    – Alexandre Hamez

    13. Januar 12 um 10:23 Uhr

Xcode 4.2 hatte endlich Unterstützung für C++0X hinzugefügt:

  1. Aktivieren Sie im Bildschirm mit den Projekterstellungseinstellungen die Option „Alle“.

  2. Stellen Sie im Abschnitt „Build-Optionen“ den Compiler auf „Apple LLVM-Compiler 3.0“ ein.

  3. Scrollen Sie nach unten zum Abschnitt „Apple LLVM Compiler 3.0 – Language“ und setzen Sie „C++ Language Dialect“ auf „C++0X“ und „C++ Standard Library“ auf „libc++“.

Es ist bekannt, dass std::move(), Move-Konstruktor und R-Value-Referenz wie erwartet funktionieren, und ich teste auf std::thread und std::atomic.

  • @ RichardLiu, was ist mit dem GNU++0X Möglichkeit für die C++ Language Dialect und das libstdc++ Option für C++ Standard Library? Wann sollen sie verwendet werden?

    – Zinn

    22. Januar 12 um 0:30 Uhr

  • Ich habe mal reingeschaut /Developer/About Xcode.pdf und ja, es heißt, dass C++11 unterstützt wird, aber wenn ich es verwende -std=gnu++0x es spuckt aus cc1plus: error: unrecognized command line option "-std=0x++"! Sollte ich es benutzen clang++ stattdessen?

    – Fehlerentwickler

    4. März 12 um 22:50 Uhr

  • @errordeveloper, bisher hatte ich nur C++11 INNERHALB der Xcode IDE erfolgreich kompiliert. Ich weiß nicht, wie ich C ++ 11 in der Befehlszeile oder im Makefile aktivieren kann. Verzeihung.

    – RichardLiu

    26. März 2012 um 7:41 Uhr

  • @RichardLiu: XCode verwendet normalerweise clang++ beim Kompilieren nicht g++weshalb die C++11-Unterstützung beim Versuch der Verwendung fehlschlägt g++ von der Befehlszeile (weil die alte g++ XCode gibt Ihnen keine Unterstützung). Nur zur Info.

    – Maisstängel

    9. Januar 13 um 5:51 Uhr

1644321730 912 Kann ich C11 mit Xcode verwenden
justin

======= Aktualisierung 2012: =======

Beginnen Sie mit Clang – Viele C++11-Features sind jetzt in Clang verfügbar. Es ist in Xcode enthalten.

======= Ursprüngliche Antwort vom Januar 2011: =======

Der Compiler von Intel ist derzeit möglicherweise der sauberste Weg.
http://software.intel.com/en-us/articles/intel-composer-xe/

clangs vielversprechende, aber nicht besonders stabile oder vorgestellte Funktionen von c++0x. c++ ist für clang noch sehr neu.

gcc: relativ ausgereift, aber Sie müssen Ihre Compiler-Plugins für xcode schreiben und warten.

Sie können auch benutzerdefinierte Skripts angeben, aber das ist mühsam zu warten … es sei denn, Sie geben sich alle Mühe und erstellen ein Adapter-Tool.

Xcode verwendet den GCC- oder den Clang-C++-Compiler. Alle Features, die von diesen Compilern unterstützt werden, sind faires Spiel. Die C++-Kompatibilitätsseite von GCC ist Hier und die Clang C++-Kompatibilitätsseite ist Hier.

  • Stimmt, aber die GCC-Unterstützung hört bei 4.2 auf, was langsam in die Jahre gekommen ist

    – Matthias

    1. November 11 um 1:15 Uhr


Ich habe festgestellt, dass auto, decltype(), range based “for (:)” in einem plattformübergreifenden Projekt funktioniert (LLVM für MacOSX, iOS, gcc/linux, MSVC 10/windows).

Lambdas und variadische Makros scheinen leider noch nicht unter LLVM zu funktionieren.

.

822390cookie-checkKann ich C++11 mit Xcode verwenden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy