Windows C ++ Compiler mit voller C ++ 11 Unterstützung (sollte mit Qt funktionieren)
Dem C++ - compiler hat derzeit komplette C++11-Unterstützung auf windows-Plattform?
Compiler von Microsoft derzeit keine vollständige C++11-Unterstützung hat (und es wird nicht Hinzugefügt werden, in absehbarer Zeit).
MinGW-g++ (aus mingw.org) nicht unterstützen std::thread
aus der box. Es kann auch nicht kompilieren von Qt 4 Quellen (aus der Erinnerung, während Gebäude QtGuid4.dll bekannte workarounds für mich nicht funktioniert).
Ich habe verschwendet mehrere Tage versucht zu machen, klammerten sich die Arbeit auf windows -, managed um es zu kompilieren, konnte es aber nicht aktivieren c++11-Unterstützung, weil es libstdc++ erforderlich, die (glaube ich) nicht portiert auf windows-Plattform, in diesem moment. Es ist auch nicht unterstützt von Qt 4.
Was gibt es sonst noch? Ich arbeite seit C++03 für eine lange Zeit, und ich möchte, um neue Funktionen in einem Strudel, aber ich weiß nicht wirklich wollen, ein tool, mit unvollständigen Unterstützung (das wird fügen Sie zusätzliche Kopfschmerzen, während das schreiben eines Codes) oder können aus dem Speicher (auf 8GB system), während die Verknüpfung einer Bibliothek.
Ich arbeite auf windows 7 64bit, und zwar mit 64-bit-Unterstützung wäre schön, ich bin hauptsächlich daran interessiert, 32bit-Anwendungen, also die Fähigkeit zu produzieren 64bit executables ist optional.
Irgendwelche Vorschläge?
InformationsquelleAutor der Frage SigTerm | 2013-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst sehen Status von Experimentellen C++11-Unterstützung in GCC 4.8. Nur ein Vorschlag ist nicht offiziell implementiert ist. Dann haben Sie einen Blick auf Stand der Umsetzung von C++11 in
libstdc++
. Wie man sehen kann sind einige Funktionen noch nicht umgesetzt. Dennoch können wir sagen, dass C++11-Unterstützung in GCC ist mehr oder weniger komplette und nutzbar.Nun, was Windows:
wahrscheinlichdefinitiv der beste native (nicht Cygwin!) Hafen von GCCdie ich persönlich wär Produktion-Qualität, ist MinGW-w64. Sie können es herunterladen hier. Die aktuelle (zum Zeitpunkt des Schreibens) neueste version basiert auf GCC 4.8.2. Es hat bereits die Unterstützung fürstd::thread
. Was mehr ist, bietet es alle möglichen Variationen:HINWEIS:
Seien Sie vorsichtig bei der Wahl, welche distribution zum download: für
std::thread
verfügbar sein, müssen Sie das mit POSIX-threads.Des weiteren bestätige ich, dass ich aufgebaut habe Qt 4.8.4 und 4.8.5 mich unzählige Male und die Ausrichtung auch auf 64-bit-mit dieser toolchain. Aber das ist nicht alles, hier ist eine Liste von einigen highlights, die ich habe persönlich gebaut mit MinGW-w64 so weit:
Denke ich, dass in der Lage zu bauen, so groß und vielfältig-code-Basen, die als 64-bit-targets mit dem guten alten GCC für Windows ist eine wunderbare Errungenschaft der MinGW-w64-Entwickler-team. Es beweist einmal mehr die Qualität der toolchain.
Qt 5
Ich habe vor kurzem gebaut, Qt 5.1.1 unter Verwendung von MinGW-w64 4.8.2 Ausrichtung x64. Alles in allem, es ging ziemlich glatt, aber es gibt ein paar kleinere Probleme, die gepatcht werden, bevor das bauen. Ich habe vorsichtig gesammelt, alle erforderlichen patches und automatisiert den gesamten Prozess von patchen, bauen und installieren mit einem einfachen batch-script. Wenn Sie interessiert sind, überprüfen Sie heraus meine Qt für Windows. Die Nutzung ist so einfach, dass werde ich überspringen, kommentieren Sie es einfach und lassen Sie Jungs Lesen das batch-Skript. Beachten Sie, dass Sie benötigen, Unix -
patch.exe
auf anwenden, um die Flecken, die Sie bekommen konnte, zum Beispiel, von MSYS oder MSYS2 (siehe unten). Erhalten Sie Qt 5.1.1 source code hier.HINWEIS:
Scheint nicht sinnvoll das Rad neu zu erfinden (die Aufrechterhaltung der persönlichen build-Skripte und patches für Qt) nicht mehr. MSYS2 (siehe unten), jetzt kümmert sich um alles. Das ist, wenn Sie brauchen, um wieder aufzubauen Qt mit verschiedenen Optionen und/oder Flaggen, dann Bearbeiten Sie einfach die entsprechende
PKGBUILD
Datei lokal und verwenden Sie diemakepkg-mingw
utility entsprechend.HINWEIS:
Tatsächlich, das Qt-Projekt offiziell empfiehlt die Verwendung von MinGW-w64 und MSYS2.
Über MSYS2
Diese wurde nicht direkt gefragt, aber ich möchte gern hinzufügen, da dieser, eine Schwester Projekt von MinGW-w64, und es ist sehr nützlich für alle, die zu entwickeln native software für Windows mit Unix-ähnlichen Umgebung.
Diejenigen von Euch, die schon einmal mit der original MSYS wahrscheinlich wissen, wie alt es ist. Es hat sich nicht verbessert, für das Alter, und alle Unix-Dienstprogramme es sind schon furchtbar veraltet.
Jungs, die builds von MinGW-w64 (siehe oben), nun auch builds von MSYS2 die Sie herunterladen können hier. Vor kurzem kam es aus der beta ist, so sicher sein, um eine Arbeitskopie der aktuellen Version. Es ist gebaut für x86-und x64-Architekturen (mit dem MinGW-w64 toolchain selbst). Alle Programme werden aktualisiert, um Ihre neuesten Versionen. Zum Beispiel, können Sie bereits genießen Sie Dinge wie: Bash 4.2, Machen 3.99, Git 1.8.4, und viele mehr, die nativ auf Windows out of the box!
HINWEIS:
Vergewissern Sie sich, dass Ihre Wiki zu haben, einen reibungslosen start.
Eine Kurze Geschichte über MinGW-w64
Original MinGW war sehr langsam über die Verbesserungen und die Entwickler nicht einmal erwägen Sie eine 64-bit-target-generation unterstützen. Ein ehrgeiziger Kerl, Kai Tietz, übernahm es und Gabel als sein Unternehmen benötigt, zu bauen 64-bit-targets auf Windows. Das ist, wie MinGW-w64-Projekt war geboren. Obwohl das primäre Ziel war, das hinzufügen von 64-bit-Unterstützung haben die Entwickler verbessert die toolchain in vielen Bereichen und befasste sich mit einer Menge anderer Probleme. Seitdem ist das MinGW-w64-Projekt ist gewachsen und jetzt ist weit Voraus von MinGW in Bezug auf Qualität. Wenn MinGW-w64 vorgeschlagen, um MinGW zu verbinden die Häuser und arbeiten zusammen, haben die Entwickler von MinGW zeigte Unzureichende Reaktion und weigerte sich zu kooperieren. Als Ergebnis gibt es heute 2 Projekte mit ähnlichen Namen, was manchmal zu Verwirrung, aber die Unterschiede in der Qualität und dem support sprechen für sich.
InformationsquelleAutor der Antwort Alexander Shukaev
Core Sprache kluge, Clang 3.3 und GCC-4.8.1 ist vollständig C++11-Konformität bereits(ob Sie bug-frei ist aber ein anderes Thema).
Library(STL) klug, Clang 3.3(mit libc++, aber Sie wissen, libc++ ist noch nicht nutzbar unter windows und linux) ist die einzige Plattform, die vollständig konform zum C++11.
MSVC, die neuesten Visual C++2013(derzeit RC, RTM in 2 Tagen und generell im Nov 13) eine viel bessere Unterstützung für C++11 in den beiden core-Sprache und STL, dachte noch nicht abgeschlossen. STL-wise, ist, soweit ich weiß, ist es vollständig.
Ich denke, dass hängt davon ab, was Ihre codes wirklich zu verwenden. Haben alle C++11-neue features wurden genutzt? Wenn Visual C++2013 feature-set können Sie überzeugen, versuchen Sie es.
Ansonsten, clang hat schon einen windows-port, der Integration in das Visual Studio und einen link zu native(msvc c++ - Laufzeit -) Bibliothek bereits(behauptet), ich denke, Sie können auch geben es ein Versuch.
Ergänzung: Visual C++11/14 übereinstimmung Fahrplan
https://udta1g.blu.livefilestore.com/y2pMXBJL7l2a5UOf_pXnLXghSUhPWK8w5skFyc50SVFcMjVwa1guQnM6R0NNLN1buBUNPGbLBejpYXXBXSbqshQKKWVfQxvJjk2jGRPPbL-UBu7gaao4RxifZgPXY5ksdei/image1.png?psid=1
InformationsquelleAutor der Antwort JC_Yang
Clang bietet vollständige Unterstützung von windows (modulo Windows-standard-library-Fehler in der libc++)
Sie können laden Sie eine "offizielle" windows-build von clang 3.3 von hier: http://www.llvm.org/builds/
Es nicht libc++ also müssen Sie Sie herunterladen, oder Ihr standard-Bibliothek der Wahl. Ich würde empfehlen, mit libc++, wenn möglich, dies ist derzeit die komplette Bibliothek-Implementierung, obwohl ich nicht weiß, wie gut es funktioniert auf windows.
InformationsquelleAutor der Antwort Richard Matheson