Wahl des Compilers



  • Blue-Tiger schrieb:

    @nwp2:
    Dass ein 4-jahre alter GCC ziemlich schlecht abschneidet ist klar 😉

    Hmm, so klar ist das nicht. Alte Compiler haben weniger optimiert, daher sind sie schneller. Außerdem legt alte Software viel mehr Wert auf Geschwindigkeit, auf einem 100MHz-Rechner kann man sich halt nicht so viel leisten wie auf einem 3GHz-Rechner.

    Aber der Vergleich bezog sich eh auf den gcc 4.4.

    Clang ist ziemlich nett, der kann hilfreiche bunte Fehlermeldungen machen und ist gcc-kompatibel (soviel wie sie schon implementiert haben) und kann viele weitere Tricks wie Syntax- und vielleicht auch Semantikhighlighting. Ich habe aber leider immernoch keine Clang-kompatiblen Header für Windows gefunden, sonst würde ich wahrscheinlich den benutzen. Übrigens war Clang der Grund warum ich überhaupt Visual Studio installiert habe, sonst würde ich immernoch 10 Sekunden statt 3 aufs Neukompilieren warten (ein gigantischer Unterschied :D).

    Edit:

    Zeus schrieb:

    Microsoft Compiler wird auch in Windows SDK mitgeliefert.

    Wobei man erwähnen sollte dass das WinSDK auch seine stolzen 188MB hat. Aber immernoch besser als die 423MB von Visual Studio (bezieht sich auf meine Installationen).



  • nwp2 schrieb:

    Die Fehlermeldungen sind miserabel, der Linker braucht ewig und die entstehenden ausführbaren Dateien sind unnötig groß.
    Im Vergleich ist der MS-Compiler mindestens doppelt so schnell (selbst wenn der gcc auf Kompiliergeschwindigkeit optimiert und der MS-Compiler auf Programmgeschwindigkeit) und die ausführbaren Dateien sind höchstens halb so groß (selbst wenn der gcc auf Platz optimiert und der MS-Compiler garnicht)

    Man muss aber auch bedenken, dass die VC++-Executables eine VC++-Runtime auf dem Zielrechner benötigen, wenn man die statisch linkt, ist das Programm doch auch einige KB größer?



  • Der GCC hat unter Windows hauptsächlich ein Problem: Es scheint ihn nicht zu geben. Zumindest nicht in der Form wie auf anderen Betriebssystemen. Man hat die Wahl zwischen einigen schlechten Ports und zugehörigen Hacks. Support für normalsterbliche gibt es auch nicht wirklich. Wo finde ich z.B. einen GCC-Port für Windows x64, den ich wirklich einfach installieren und benutzen kann? Und wie war das nochmals; unterstützt MinGW nach Jahren nun endlich wchar_t und die Libraries mit wcout etc.?

    Was ich sagen will: Für sehr fortgeschrittene Programmierer, welche mit diversen Platformen arbeiten wollen bzw. müssen, ist das Aufsetzen des GCC unter Windows eine Variante, welche unter gewissen Umständen in Frage kommen könnte. Für alle anderen ist es komplett unvernünftig, den Compiler überhaupt nur zu suchen. Mit Code::Blocks zusammen ausgeliefert ist wohl das Maximum, welches man rausholen kann. Und das ist schade, denn auch wenn Microsoft mit Visual C++ seit 2003 verdammt gute Arbeit geleistet hat, wäre ein wenig Konkurrenz ganz gut 😉



  • /rant/ schrieb:

    Der GCC hat unter Windows hauptsächlich ein Problem: Es scheint ihn nicht zu geben. Zumindest nicht in der Form wie auf anderen Betriebssystemen. Man hat die Wahl zwischen einigen schlechten Ports und zugehörigen Hacks. Support für normalsterbliche gibt es auch nicht wirklich. Wo finde ich z.B. einen GCC-Port für Windows x64, den ich wirklich einfach installieren und benutzen kann? Und wie war das nochmals; unterstützt MinGW nach Jahren nun endlich wchar_t und die Libraries mit wcout etc.?

    Wie gesagt, GCC-4.4.x-Versionen wie der TDM MinGW unterstützen diese Libs.



  • In Tests habe ich festgestellt, das VC++ auch bei statisch gelinkter Standardlib kleinere Executables produziert (fast 50 % kleiner).



  • Mr X schrieb:

    In Tests habe ich festgestellt, das VC++ auch bei statisch gelinkter Standardlib kleinere Executables produziert (fast 50 % kleiner).

    Gut möglich, vor allem der MinGW-TDM-GCC 4.4.1 produziert, wenn man <iostream> einbindet, selbst mit allen Optimierungen 450 KB großen Code 😞 .
    Vielleicht bringt ja die LTO vom neu erschienenen GCC 4.5 was.
    EDIT: Link-Time-Optimisation gibt's nur für ELF-Targets, dazu zählt Windows nicht.



  • wxSkip schrieb:

    Mr X schrieb:

    In Tests habe ich festgestellt, das VC++ auch bei statisch gelinkter Standardlib kleinere Executables produziert (fast 50 % kleiner).

    Gut möglich, vor allem der MinGW-TDM-GCC 4.4.1 produziert, wenn man <iostream> einbindet, selbst mit allen Optimierungen 450 KB großen Code 😞 .
    Vielleicht bringt ja die LTO vom neu erschienenen GCC 4.5 was.

    Lässt sich die exe auch nicht "strippen" (mit strip)?



  • Ist schon gestrippt.
    Das einzige, was ich noch probieren könnte, ist -Os.

    EDIT: Bringt auch nichts, immer 457 KB groß.



  • wxSkip schrieb:

    /rant/ schrieb:

    Der GCC hat unter Windows hauptsächlich ein Problem: Es scheint ihn nicht zu geben. Zumindest nicht in der Form wie auf anderen Betriebssystemen. Man hat die Wahl zwischen einigen schlechten Ports und zugehörigen Hacks. Support für normalsterbliche gibt es auch nicht wirklich. Wo finde ich z.B. einen GCC-Port für Windows x64, den ich wirklich einfach installieren und benutzen kann? Und wie war das nochmals; unterstützt MinGW nach Jahren nun endlich wchar_t und die Libraries mit wcout etc.?

    Wie gesagt, GCC-4.4.x-Versionen wie der TDM MinGW unterstützen diese Libs.

    x64? 😃 😉

    TDM-GCC is now heartily endorsed for production use in any non-critical environment. No level of support for TDM-GCC is in any way guaranteed.

    Ich wünsch mir einen GCC auf Linux Niveau. Am besten so einfach einzurichten und sicher zu benutzen wie etwa unter Ubuntu 😞



  • /rant/ schrieb:

    Ich wünsch mir einen GCC auf Linux Niveau. Am besten so einfach einzurichten und sicher zu benutzen wie etwa unter Ubuntu 😞

    Mit dem Einrichten gibts doch aber eigentlich keine Probleme, oder?



  • verwendet hier niemand den intel c compiler 😕
    soll doch für x86 eine tolle performance liefern 🙂

    lg lolo



  • Ist aber auch nicht frei erhältlich (außer für nicht-komerzielle Linux Projekte). 😉



  • Janjan schrieb:

    Ist aber auch nicht frei erhältlich (außer für nicht-komerzielle Linux Projekte). 😉

    hab ich ganz übersehen das es hier um open source compiler ging 😃

    lg lolo



  • Nicht Open Source Compiler, sondern freie Compiler.



  • Janjan schrieb:

    Nicht Open Source Compiler, sondern freie Compiler.

    Dann aber frei wie in "Freibier", und nicht wie in "freie Liebe".
    🙂


Anmelden zum Antworten