Welcher Compiler ist für meine Anforderungen der beste?



  • Guten Tag,

    bisher benutze ich GNU/MinGW, aber ich wollte mich mal umhören, ob das wirklich der sinnvollste C/C++ Compiler für mich ist. Ich möchte hauptsächlich Programme für Windows und Linux schreiben, eventuell auch etwas für Mac OS X. Der Compiler sollte auch im kommerziellen Bereich kostenlos sein. Ist GNU/MinGW mit den Anforderungen der beste Compiler für mich? Oder sollte ich eventuell für jede Plattform einen anderen Compiler verwenden. Beispielsweise für Windows den Microsoft Visual C++ Express Edition Compiler und für Linux den GNU?

    Liste von Compilern:
    GNU/MinGW
    Microsoft Visual C++ Express Edition Compiler
    Borland C++ Compiler
    Digital Mars Compiler
    OpenWatcom Compiler
    Cygwin
    LCC Compiler
    Intel C/C++ Compiler
    SDCC Compiler
    Tiny C Compiler
    GDC D Compiler

    Mit freundlichen Grüßen,
    DarkBug



  • Ich würd den nativen Compiler der jeweiligen Plattform verwenden. Unter Linux wär das eben gcc, unter Windows MSVC, ...


  • Mod

    dot schrieb:

    Ich würd den nativen Compiler der jeweiligen Plattform verwenden. Unter Linux wär das eben gcc, unter Windows MSVC, ...

    +1 Wenn du so viele verschiedene Plattformen erreichen willst (vor allem Windows und Linux sind sehr unterschiedlich, Linux und Mac hingegen recht ähnlich), verzichte einfach komplett auf alles was nicht Sprachstandard ist. Und sei auch sparsam mit neueren Standards wie C++11 und (traurigerweise) C99. Wenn du dich an den Standard hältst, dann ist der Compiler egal, abgesehen von gelegentlichen Standardbibliotheksmacken bei sehr exotischen Compilern.



  • SeppJ schrieb:

    dot schrieb:

    Ich würd den nativen Compiler der jeweiligen Plattform verwenden. Unter Linux wär das eben gcc, unter Windows MSVC, ...

    +1 Wenn du so viele verschiedene Plattformen erreichen willst (vor allem Windows und Linux sind sehr unterschiedlich, Linux und Mac hingegen recht ähnlich), verzichte einfach komplett auf alles was nicht Sprachstandard ist. Und sei auch sparsam mit neueren Standards wie C++11 und (traurigerweise) C99. Wenn du dich an den Standard hältst, dann ist der Compiler egal, abgesehen von gelegentlichen Standardbibliotheksmacken bei sehr exotischen Compilern.

    Aus dem Grund würde ich einfach den GCC bzw. MinGW verwenden. Dann muss man sich keine Sorgen um die unterschiedlichen Umsetzungen der Sprachstandards machen. MSVC unterstützt zB recht wenig C++11 und kaum C99 und das wird sich wohl auch so schnell nicht ändern.



  • Danke, dann werde ich weiterhin den GCC bzw. MinGW verwenden. Jedoch stellt sich da noch die Frage welchen MinGW ich verwenden soll. Bisher habe ich den MinGW von http://www.mingw.org/ benutzt. Mir wurde aber mitgeteilt, dass es mehrere MinGWs gibt, wie zum Beispiel den von http://tdm-gcc.tdragon.net/. Ich benutze Code::Blocks zusammen mit wxPack. Welcher MinGW ist der sinnvollste für mich?



  • *push*



  • SDCC?!?!? Das ist ein Compiler für 8-Bit Microcontroller...



  • Hatte einfach mal die Liste mit den Compilern gepostet, die C::B unterstützt. Gut möglich das da auch Compiler für andere Anwendungsbereiche mit drin sind. Ich möchte jedoch hauptsächlich Programme für Windows und Linux schreiben, eventuell auch etwas für Mac OS X.

    DarkBug schrieb:

    Danke, dann werde ich weiterhin den GCC bzw. MinGW verwenden. Jedoch stellt sich da noch die Frage welchen MinGW ich verwenden soll. Bisher habe ich den MinGW von http://www.mingw.org/ benutzt. Mir wurde aber mitgeteilt, dass es mehrere MinGWs gibt, wie zum Beispiel den von http://tdm-gcc.tdragon.net/. Ich benutze Code::Blocks zusammen mit wxPack. Welcher MinGW ist der sinnvollste für mich?



  • Hier nochmal die Antwort auf deine Frage:

    Windows -> MSVC
    Linux und MAC -> gcc



  • MSVC ist nie eine Antwort. Der t-dragon GCC ist schon gut und richtig so.



  • 314159265358979 schrieb:

    MSVC ist nie eine Antwort.

    Wenns um Windows geht eben schon 😉



  • Zu verbuggt.



  • Ach is das so? Das erklärt natürlich alles...



  • Wenns nicht so wäre, hätte pumuckl nicht andauernd Probleme damit.



  • Das ist natürlich ein Argument, was soll man da noch dagegen sagen...



  • Ich verwende selbst auch den gcc wegen c++11, vermisse aber intellisense. Außerdem optimiert msvc++ meiner Einschätzung nach besser als gcc.



  • GorbGorb schrieb:

    Ich verwende selbst auch den gcc wegen c++11, vermisse aber intellisense.

    Was hat Autovervollständigung mit dem GCC zu tun? Autovervollständigung ist ein Feature der IDE.



  • Ich bezweifle, dass es komfortabel ist, vc++ als IDE mit gcc als compiler zu verwenden.



  • Dann nimm halt eine andere IDE mit Autovervollständigung die besseren GCC-Support hat.



  • Wer den GCC unter Windows (MingW) einsetzen möchte, der kann sich gerne mal die NetBeans IDE anschauen. Ansonsten ist halt Code::Blocks meiner Meinung nach die einzige vernünftige IDE-Alternative unter Windows.

    Für mich persönlich aber:
    Unter Windows sind eben die Microsoft-Compiler einfach unschlagbar.
    1. Die sind jetzt auch kostenlos als Express-Versionen verfügbar (glaub Kommandozeilen-Compiler war schon immer kostenlos mit dem SDK?!?)
    2. Die führen eine unschlagbar gut funktionierende IDE mit sich (jeder hat seine Glaubensrichtung was IDE betrifft, aber bisher ist bei mir nur NetBeans annähernd an MS Visual Studio rangekommen.).
    Unter Linux gibt es unzählige IDE-Alternativen. Aber für nicht versierte Linux-Hacker kommen zu Beginn nun mal nur IDE/Editoren in Frage, die eben komfortabel zu bedienen sind ohne großes Zutun des Entwicklers (z. B. NetBeans, eclipse, Code::Blocks, KDevelop, ...).

    An den TE:
    Ich spiele gerne mit unterschiedlichen IDE's rum und porte gerne mal ein bestehendes Projekt zu einer anderen IDE nur um zu schauen, wie es unter dieser Umgebung zu arbeiten ist. Als Compiler unter unterschiedlichen Plattformen war ich bisher mit dem GCC wunderbar bedient, wobei ich aber wie gesagt unter Windows den MS VC++ bevorzuge. Probier doch einfach selbst mal rum und sammle deine eigenen Erfahrungen 😉


Anmelden zum Antworten