C++ auf allen Betriebssystemen?



  • Warum wird mir hier so ans Bein gepisst? Der Compiler der Wahl für plattübergreifende C++ Entwicklung ist eben der g++ (und vlt in Zukunft clang), Punkt.
    Deswegen entwickelt man eben auch unter Windows damit (wenn viele Plattformen das Ziel sind) bevor man sich einen Compiler an den Hals bindet, der einige Dinge nicht standardkonform durchsetzt, wenige C++11 Features implementiert, ganz andere Compiler Extensions anbietet etc.



  • Wie sieht es eigentlich auf der g++-Mailinglist aus, seit clang so am durchstarten ist? 🙂



  • Ethon schrieb:

    Warum wird mir hier so ans Bein gepisst? Der Compiler der Wahl für plattübergreifende C++ Entwicklung ist eben der g++ (und vlt in Zukunft clang), Punkt.
    Deswegen entwickelt man eben auch unter Windows damit (wenn viele Plattformen das Ziel sind) bevor man sich einen Compiler an den Hals bindet, der einige Dinge nicht standardkonform durchsetzt, wenige C++11 Features implementiert, ganz andere Compiler Extensions anbietet etc.

    Weil das nicht stimmt.
    Unter Windows nimmt man, alleine schon wegen dem besseren Debugging den VC++.



  • Shade Of Mine schrieb:

    Ethon schrieb:

    Warum wird mir hier so ans Bein gepisst? Der Compiler der Wahl für plattübergreifende C++ Entwicklung ist eben der g++ (und vlt in Zukunft clang), Punkt.
    Deswegen entwickelt man eben auch unter Windows damit (wenn viele Plattformen das Ziel sind) bevor man sich einen Compiler an den Hals bindet, der einige Dinge nicht standardkonform durchsetzt, wenige C++11 Features implementiert, ganz andere Compiler Extensions anbietet etc.

    Weil das nicht stimmt.
    Unter Windows nimmt man, alleine schon wegen dem besseren Debugging den VC++.

    Also würdest du Code ohne variadische Templates etc schreiben und den Code mit Präprozessor Direktiven besprenkeln nur damit du unter Windows einen geringfügig einfacher zu bedienenden Debugger hast, der dir auf anderen Plattformen nix bringt?



  • Ethon schrieb:

    Also würdest du Code ohne variadische Templates etc schreiben und den Code mit Präprozessor Direktiven besprenkeln nur damit du unter Windows einen geringfügig einfacher zu bedienenden Debugger hast, der dir auf anderen Plattformen nix bringt?

    varidadic Templates und sonstwas sind nett, aber die Toolchain mit der man Entwickelt (Debugger, etc.) ist wichtiger.

    Im endeffekt ist die Entwicklungszeit mit guten Toolchains einfach soviel kuerzer als mit schlechten Toolchains und gcc hat unter Windows einfach nichts vernuenftiges.

    Natuerlich wird es auch Situationen geben wo man lieber zum gcc greift unter Windows - aber um ehrlich zu sein: mir faellt aktuell kein Grund ein.



  • Shade Of Mine schrieb:

    Ethon schrieb:

    Also würdest du Code ohne variadische Templates etc schreiben und den Code mit Präprozessor Direktiven besprenkeln nur damit du unter Windows einen geringfügig einfacher zu bedienenden Debugger hast, der dir auf anderen Plattformen nix bringt?

    varidadic Templates und sonstwas sind nett, aber die Toolchain mit der man Entwickelt (Debugger, etc.) ist wichtiger.

    Im endeffekt ist die Entwicklungszeit mit guten Toolchains einfach soviel kuerzer als mit schlechten Toolchains und gcc hat unter Windows einfach nichts vernuenftiges.

    Natuerlich wird es auch Situationen geben wo man lieber zum gcc greift unter Windows - aber um ehrlich zu sein: mir faellt aktuell kein Grund ein.

    Da stimme ich dir voll und ganz zu. Habs immer wieder probiert vom VC loszukommen, aber es gibt keinen vernünftigen Grund. Code::Blocks ist maßlos überladen, Eclipse nen Schmerz im Arsch und laggt/zieht Performance wie Seuche und CodeLite funzt auch nur wenns grade will.
    Dazu muss man mit MSYS arbeiten, weil man sonst ständig mit Fehlern bei den Makefiles für MinGW zu kämpfen hat.

    Die größte Stärke imho ist auch der support für vorkompilierte Header. Das einzustellen ist unter Eclipse auch ein wahnsinniger Aufwand.



  • Könnte vlt auch davon abhängen was die Hauptentwicklungsplattform ist ... denke ein OsX-Entwicklerteam wird deutlich weniger Interesse daran haben, den Windows Port mit VC++ zu kompilieren. 🙂



  • Ethon schrieb:

    Könnte vlt auch davon abhängen was die Hauptentwicklungsplattform ist ... denke ein OsX-Entwicklerteam wird deutlich weniger Interesse daran haben, den Windows Port mit VC++ zu kompilieren. 🙂

    Wenn du XPlatform arbeitest, dann gewöhnt man sich eh an gewisse Erweiterungen der STL, die nur bei diesem Compiler gehen, nicht zu benutzen.
    Und für Makefiles nimmt man dann besser CMake.
    Dann isses wayne was dein Target ist. Kompiliert ist das fix ;).
    Und beim Umstieg Mac -> Windows wird dein größeres Problem wohl Big Endian sein als der Compilersupport ;).



  • @Scorcher24
    Hast du die letzten paar hundert Mac Generationen mit Intel Core CPU s verpennt oder wie? 🤡



  • hustbaer schrieb:

    @Scorcher24
    Hast du die letzten paar hundert Mac Generationen mit Intel Core CPU s verpennt oder wie? 🤡

    Ich folge der Mac Entwicklung überhaupt nicht :p.
    Also ja :xmas2:.



  • Ethon schrieb:

    Könnte vlt auch davon abhängen was die Hauptentwicklungsplattform ist ... denke ein OsX-Entwicklerteam wird deutlich weniger Interesse daran haben, den Windows Port mit VC++ zu kompilieren. 🙂

    Der kann ja auch kein Objective-C 😉



  • Scorcher24 schrieb:

    Aber wenns ums Debuggen geht und damit verbringt man viel Zeit, ist der MSVC die beste IDE. Da beisst die Maus kein Faden ab.

    So allgemein ist das doch einfach Quatsch. Abhängig davon was für ein Problem man debuggen will, gibt es deutlich bessere Werkzeuge als den MS-Debugger. Wenn ich bspw. Synchronisationsprobleme in nebenläufigem Code debuggen muss, verschwende ich meine Zeit doch nicht mit dem Visual-Studio-Debugger, sondern nehme ein hierfür geeignetes Werkzeug, das für diese Art von Problem gedacht ist und mir viel Arbeit ersparen kann. Gleiches gilt für Speicherverwaltungsbugs. Spezialisierte Werkzeuge sind oft einfach die bessere Wahl, wenn sie im vorliegenden Fall anwendbar sind.

    Hier fällt der gesamte IDE-Ansatz dann allerdings regelmäßig auseinander. Ich jedenfalls nutze lieber die für mein Anwendungsgebiet besten Tools, anstatt das zu nehmen, was mir eine IDE vorsetzt. Das fängt ja bei den meisten IDEs schon mit einem bestenfalls mittelmäßigem Editor an und hört bis hin zum Linker nicht auf. Die ein oder andere hochqualitative Komponente (wie für manche Probleme eben der MS-Debugger) reißt es dann auch nicht mehr raus.



  • DevBeat schrieb:

    Guten Abend, bin neu hier,

    und ich bin am überlegen C++ zu lernen.

    Meine Voraussetzung dafür ist aber, dass die Sprache Plattformunabhängig ist.

    Meine Frage ist nun, läuft ein C++ Programm auf allen Betriebssystem?(Windows/Linux/Mac OS)
    Mfg

    Auf den von Dir genannten ja.

    Wenn Du Dir eine Programmiersprache suchst, ist meine Ansicht, daß die Plattformunabhängigkeit nicht das wichtigste Kriterium sein sollte.

    Viel wichtiger ist z.B., ob die Sprache auch noch in zwanzig Jahren uptodate ist.
    Was bei C++ mit hoher Wahrscheinlichkeit wohl der Fall sein dürfte.

    Sehr wichtig ist natürlich auch, was Du programmieren willst. C++ ist ein sehr gute Allroundsprache,wenn es um sehr spezielle Dinge geht, allerdings nicht immer die beste Wahl.



  • redrew99 schrieb:

    DevBeat schrieb:

    Meine Frage ist nun, läuft ein C++ Programm auf allen Betriebssystem?(Windows/Linux/Mac OS)
    Mfg

    Wenn Du Dir eine Programmiersprache suchst, ist meine Ansicht, daß die Plattformunabhängigkeit nicht das wichtigste Kriterium sein sollte.

    Das Argument, dass Java die beste Programmiersprache sei, weil sie Platformunabhängig ist, ist das gleiche Argument, dass Analsex der beste Sex ist, weil er Geschlechterunabhängig ist 😉


  • Mod

    Bloß dass Java eben nur auf einer bestimmten Maschine läuft, der Java-VM. Wehe, sie ist für die eigentlich vorhandene Plattform nicht verfügbar.



  • SeppJ schrieb:

    Bloß dass Java eben nur auf einer bestimmten Maschine läuft, der Java-VM. Wehe, sie ist für die eigentlich vorhandene Plattform nicht verfügbar.

    Das weiß ich auch, aber die Pointe der Aussage sollte klar werden 😉



  • Cyres schrieb:

    Das Argument, dass Java die beste Programmiersprache sei, weil sie Platformunabhängig ist, ist das gleiche Argument, dass Analsex der beste Sex ist, weil er Geschlechterunabhängig ist

    Ahja, und wie soll das bei 2 Frauen auf natürlicheweise klappen?!



  • Jasmin schrieb:

    Cyres schrieb:

    Das Argument, dass Java die beste Programmiersprache sei, weil sie Platformunabhängig ist, ist das gleiche Argument, dass Analsex der beste Sex ist, weil er Geschlechterunabhängig ist

    Ahja, und wie soll das bei 2 Frauen auf natürlicheweise klappen?!

    Gar nicht aber dafür gibts ja strap ons.



  • Zeigt nur dass der durchschnittliche Javabasher so weit von Geschlechtsverkehr entfernt ist wie eine Frau von aktivem Analverkehr. 🤡



  • Hallo DevBeat!

    Schau dir mal Qt an, z.B. mit diesen Videos: http://www.youtube.com/playlist?list=PL2D1942A4688E9D63&feature=plcp

    "Pures" C++ sollte sich auf allen Plattformen auf denen ein Compiler vorhanden ist verwenden lassen, aber normalerweise hat man halt viele Zusatzbausteine die nur auf Windows oder Linux oder wo auch immer laufen. Das sind dann die Teile, die das Programm auf ein Betriebssystem festnageln.

    Qt gibt dir die Möglichkeit, plattformübergreifende GUIs zu erstellen.
    Allerdings ist zu erwähnen, dass Qt C++ ein bisschen erweitert (signals&slots).

    Aber gerade für Anfänger ist Qt eine tolle Möglichkeit, schnell mal zu brauchbaren GUI Programmen zu kommen - und die Programme lassen sich für Linux, Windows und andere gängige OS compilieren.


Anmelden zum Antworten