Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

19.08.2014, 16:59

Ja, das ist nach allem was ich bisher dazu vernehmen durfte von etwas, das man als "Kompatibilität" bezeichnen könnte, noch Lichtjahre entfernt...

Ich persönlich würde unter Linux auch clang bevorzugen. Unter Windows etwas anderes als MSVC zu verwenden halt ich dagegen für eine dumme Idee. Das Windows ABI ist mehr oder weniger definiert als "was auch immer MSVC macht", sämtliche offiziellen SDKs und Libraries für Windows targeten MSVC, ...

Jede Plattform hat ihre eigene Kultur. Wenn man eine Anwendung auf verschiedenen Plattformen verfügbar machen will, ist es imo essentiell, dass die jeweiligen Varianten die jeweilige Kultur respektieren. Es gibt imo nichts schlimmeres als z.B. diesen Qt oder Java Kram, wo effektiv einfach nur eine weitere Plattform über alle möglichen Betriebssysteme oben drüber gestülpt wird, was im Endeffekt dann dazu führt, dass sich eine damit entwickelte Anwendung auf jedem Betriebssystem "fremd" anfühlt...

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

12

20.08.2014, 01:54

Also meine persönliche Erfahrung ist, dass unter Windows so oder so so gut wie alle Makefiles etc. versagen. Es mag vielleicht auch daran liegen weil ich zu wenig Erfahrung von der Plattform habe, aber die Hoffnung einfach so eine beliebige Lib builden zu können habe ich schon lange aufgegeben. Und abgesehen von zusätzlichen Inkompatibilitäten falls es tatsächlich welche gibt, hat statische Linkung auf jeden Fall nur Vorteile für Windowsnutzer.
Wenn man sich nicht genügend damit auskennt, muss es einem ja auch nicht gross interessieren, aber wenn man das Ganze genauer anschaut und anfängt mit vielen verschiedenen Libraries zu arbeiten, dann wird es auf einmal sehr wichtig wie was gelinkt wird und ob ich da jetzt 10 Buildscripts umschreiben muss, etc.

Dem gegenüber steht das MinGW, das mir nicht mehr besonders aktiv entwickelt zu werden scheint. "Recent comments: 3 years 30 weeks ago" und so...
Nur Leute die sich nicht mit der GCC Entwicklung für Windows interessieren betrachten noch die "originale MinGW" Version. Alle anderen sind bereits zum MinGW-w64 Projekt hinüber gegangen (so auch mein Link). MinGW Builds bieten auch einen einfachen Installer an (siehe Link) und sie sind praktisch immer up-to-date (im Moment GCC 4.9.1). Aber es soll ja immer Leute geben, die eine schöne Website brauchen, bevor sie ein Produkt verwenden. ;)

Imo ist es sinnvoll, sich auf jeder Plattform an den jeweiligen Standard zu halten. Unter Linux wäre das GCC, unter Windows MSVC, unter Apple afaik clang
Und wieso genau ist das sinnvoll? Habe bis jetzt keinen einzigen Nachteile mit MinGW unter Windows gefunden, nein im Gegenteil nur Vorteile - C++11 Support, einfacheres Handling da gleich wie unter Linux, keine Microsoft spezifische Quirks, etc.
Ich hoffe nun aber auch schwer, dass du unter Windows IE, unter Linux Firefox, unter OS X Safari und unter Android Chrome verwendest und auf Windows ja nie Open/Libre Office installierst! :D
Mit MinGW bekommt man einen vollwertigen Windows Compiler. Nur weil die Firma die das OS geschrieben hat auch einen Compiler publiziert, heisst das noch lange nicht, dass dieser unschlagbar besser ist. Die OS Entwickler werden wohl sehr wenig mit dem Compiler Team zu tun haben und anders rum genau so.

Jede Plattform hat ihre eigene Kultur. Wenn man eine Anwendung auf verschiedenen Plattformen verfügbar machen will, ist es imo essentiell, dass die jeweiligen Varianten die jeweilige Kultur respektieren. Es gibt imo nichts schlimmeres als z.B. diesen Qt oder Java Kram, wo effektiv einfach nur eine weitere Plattform über alle möglichen Betriebssysteme oben drüber gestülpt wird, was im Endeffekt dann dazu führt, dass sich eine damit entwickelte Anwendung auf jedem Betriebssystem "fremd" anfühlt...
Ich würde fast mal wetten, dass du schon Qt Applikationen verwendet hast, welche so sehr "native" waren, dass du es gar nicht bemerkt hast und wenn nicht Qt dann GTK oder wxWidget, welche ja auch nicht "native" sind.

Von einer Position der Cross-Platform Entwicklung aus, spielt es keine Rolle welche Kompiler verwendet werden. Wenn man natürlich aber komplett auf OS spezifische Programmierung geht, macht es vielleicht dann Sinn auch auf einem 100% OS spezifischen Kompiler was zu schreiben. Das Gleiche gilt für Libraries; Cross-Platform Libraries unterstützen meistens alle möglichen Kompiler, während OS spezifische nur die 100% OS spezifischen Kompiler unterstützen. Aber eine allgemeine Empfehlung nur "standard" Kompilers zu verwenden find ich schon fast lächerlich.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »eXpl0it3r« (20.08.2014, 01:59)


Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

13

20.08.2014, 12:10

Wow, erstmal wow. Selten solche so ausführlich Antworten bekommen!

Ich habe mich jetzt entschlossen doch vorerst Visual Studio Proffessional zu nutzen.
Der Platformabhängige Code beschränkt sich nur auf ein paar wenige Klassen. ( Größtenteils betrifft das nur den Part, der später mittels X11/Xlib und GLX implementiert wird ).

Das mit den Linkerproblemen unter dem TDM Build ist mir leider auch schon aufgefallen.
Die 64-bit DLLs haben dort den _64 Suffix. Das wusste ich gestern nicht, das hat bei mir u.a. einige Linkerbeschwerden nach sich geführt.

Danke für die Antworten ^^

P.S.: Die Diskussion, die sich entwickelt hat, könnte schon fast ein eigener Thread sein ;)
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Werbeanzeige