Compiler in Visual Studio ändern
-
Hi!
Ich habe Visual Studio 2010, bin aber mit den Compilerfeatures nicht zufrieden.
Habe auch schon rausgefunden das gcc oder Clang fast alles von c++11 unterstürzen.Ist es möglich den Compiler zu ändern? Also MSVS weg gcc rein z.B.?
Ich habe mich schon sehr an die Entwicklungsumgebung von VS 20xx gewöhnt, sodass ich die gerne beibehalten würde nur mit einem anderen Compiler eben.
-
EinUnreg schrieb:
Ist es möglich den Compiler zu ändern? Also MSVS weg gcc rein z.B.?
Möglich ja. Die Frage ist nur, wie einfach das ist. Mir ist keine vorhandene VS/MSBuild Integration für gcc oder clang bekannt, du müsstest dir das also selber basteln, was wohl nicht wenig Aufwand ist. Und selbst unter der Annahme, dass du sowas hättest, würd ich mal davon ausgehen dass z.B. der Visual Studio Debugger mit den von gcc oder clang erzeugten Binaries und Debuginfos nicht viel anzufangen weiß.
Für Windows würde ich immer zu MSVC raten, einfach weil es der native Compiler der Plattform ist. clang funktioniert unter Windows afaik leider (noch) nicht so toll. Wenn du wirklich unbedingt was anderes verwenden willst, musst du dir wohl auch eine andere IDE suchen. Einzig der Intel C++ Compiler ist afaik auch in VS wirklich benutzbar...
-
Das ist aber doof. Wie kann ich dann Sachen wie constexpr, static_if etc. verwenden?
-
Es gibt kein static_if in C++ und constexpr wird von msvc noch nicht unterstützt.
-
Also das ging schon mit Visual Studio 6. Was soll sich da geaendert haben. Verbiete MS jetzt fremde Compiler mit ihrer IDE, glaube nicht.
-
knivil schrieb:
Verbiete MS jetzt fremde Compiler mit ihrer IDE, glaube nicht.
Wie knivil schon schreibt, möglich ist es. Die Frage ist eben, ob man dann auch noch aus dem MSVC raus debuggen kann.
dot schrieb:
constexpr wird von msvc noch nicht unterstützt.
Eben drum will er ja einen anderen Compiler unter die IDE hängen.
Ich kenne das Problem, habe mich aber nach kurzer Recherche (ein paar h) dazu entschlossen, den Compiler nicht zu wechseln und nur die Features zu nutzen, die in VS10 zur Verfügung stehen. Heißt unter anderem, dass ich an einer Stelle Boost.Preprocessor anstrengen musste, um variadic Templates zu simulieren *meh*
-
Also Debuggen glaube ich nicht, aber wenn eine Zeile einen Fehler oder Warnung erzeugt, dann dieser mit Doppelklick auf die Meldung angesprungen werden. Wie aufwendig das ist einzustellen, weiss ich aber nicht.
-
knivil schrieb:
Wie aufwendig das ist einzustellen, weiss ich aber nicht.
Ziemlich aufwändig. Zu dem Debug-Problem kommt noch, dass Intellisense dann noch öfter aussteigt oder sinnfreie Ergebnisse liefert, weils mit constexpr & Co. nichts anfangen kann. Mal abgesehen von den roten Fehlermarkierungen weiß Intellisense z.B. innerhalb eines variadic templates nicht mehr so wirklich wo vorne und hinten ist. Und wenn sowohl der Debugger als auch Intellisense aussteigen, bleiben nicht mehr so viele Gründe übrig, noch weiter die VS10 IDE zu benutzen.