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

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

1

27.02.2013, 23:01

Cross Platform Compiling - "Ein System 3 Ziele"

Hallo Community,

ich habe für nen Schulwettbewerb ein kleines Tool programmiert. Ich möchte dieses Tool jetzt auch unter Windows und Linux zur Verfügung stellen. Das wohl einfachste wäre, den ganzen Code auf Windows zu compilen und dann auf Linux zu compilen. Da mir aber wahrscheinlich das ganze hin und herspringen zwischen den System nach einer gewissen Zeit ziemlich auf den Keks gehen wird, wollte ich es eigentlich so machen, dass ich in XCode einfach 3 Targets eingetragen habe. Jetzt weiß ich aber nicht genau wie ich das anstellen soll. Habe zwar schon gefunden, dass das ganze ein bisschen arbeitsaufwendiger ist weil ich die ganzen Windows und Linux informationen brauch ... aber eine richtige Lösung habe ich noch nicht gefunden.

Das System:

OsX 10.8.2
XCode 4.6

Das Tool ist in C++ und SFML geschrieben, es sollte auf jeder der Plattformen laufen.


Jetzt ist meine Frage was muss ich genau machen? Kennt jemand gute Tutorials wo so etwas erklärt ist ?


Lg
Moritz

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

2

28.02.2013, 00:16

Für mich hört sich das so an, als könnte cmake was für dich sein.

Da baust du halt ein kleines cmake skript und dann erzeugt cmake dir projekt files für visual c++ oder make-files für gcc oder was alles unterstützt wird.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

28.02.2013, 01:22

Dadurch wird es meines Wissens nach aber noch nicht kompiliert. Cross ist immer so ne Sache. Ernst musst du dir dann den Kompiler+Linker für dein OS holen und wenn du dich da durchgewurschtelt hast und ein Kompilat in den digitalen Händen hälst, heißt das noch lange nicht, dass es läuft. Sprich auch wenn es auf dem Blatt sexy klingen mag, ich würde die Finger davon lassen.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

simbad

unregistriert

4

17.03.2013, 10:12

Na wenn du die Standard-Libraries verwendest, dann wird die Portierung dadurch einfacher. SFML dürfte ebenfalls cross-platform fähig sein.
Das Hauptproblem sind die unterschiedlichen Compiler und Entwicklungsumgebungen.
Ich würde für Windows den mingw compiler verwenden. Der basiert auf den gnu-compilern und damit hättest du schonmal für Linux und Windows einen einheitlichen Aufruf des Compilers. Den mingw-compiler gibts auch für Linux. Das bedeutet, das man unter Linux sowohl die Linux als auch die Windows-Version erzeugen könnte. Da habe ich aber keine Erfahrung mit.
Die Windows Portierung mit dem VisualStudio zu machen wäre auch machbar, aber da hast du dann zwei stark voneinander abweichende Umgebungen.
Mehr fällt mir im Moment nicht dazu ein.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

17.03.2013, 10:34

Du wirst das Spiel sowieso auf den jeweiligen Zielplattformen testen müssen, Cross Compiling ist für sowas imo eher sinnfrei. Jede Plattform hat ihre native Toolchain, unter Linux ist das z.B. im Moment noch gcc und bald hoffentlich clang, unter OS X clang und unter Windows MSVC. Wenn es keinen besonderen Grund gibt, etwas anderes zu machen, dann rate ich dazu, auf jeder Plattform jeweils die native Toolchain zu benutzen. SFML ist für alle von dir gewünschten Plattformen verfügbar und wenn dein C++ Code einigermaßen portabel ist, sollte es da eigentlich keine Probleme geben...

Werbeanzeige