Portieren von Software


MacGyver

Member
Joined
Jun 7, 2008
Messages
144
Website
Visit site
Hallo

1.Wer hat schon mal Software auf eine andere Plattform Portiert und könnte mir bei Fragen zur Seite stehen?
2.Gibt es sachen auf die man besonders achten muss ?
3.Ich selber Programmiere mit c++ habe aber noch nie etwas Portiert und wollte
Wissen wie Einfach oder Schwer es werden kann für mich XMoto zu Portieren (oder macht das schon jemand?)?

Gruß MacGyver
 
Ich habe zwar noch nie Software portiert, aber kenn mich trotzdem etwas aus, da ich mich mal mit dem Thema beschäftigt habe und auch schon für verschiedene Platformen entwickelt habe.

Sowohl 2. als auch 3. hängen sehr stark vom Code ab den du portieren willst, der Ausgangsplatform und der Zielplatform. Wenn das Spiel/Programm schon in einer Linuxversion verfügbar ist, macht das die Sache schonmal ein ganzes Stück einfacher in der Regel. Wurde der Code zu dem auch noch sauber aufgebaut und alles folgt strikt den Prinzipien von OOP, so ist portieren eigengtlich ein Kinderspiel, da die Änderungen sich nur auf ein paar wenige Klassen beschränken dürften. Hat der Coder nicht so den Bezug zu OOP, so kann das Portieren ziemlich übel werden. Prinzipiell gilt als kleine Daumenregel, je mehr man sich an die OOP hält, desto einfacher lässt sich ein Projekt portieren. Ist sehr viel prozeduraler Code vorhanden wirst du sehr viel Code durchwühlen müssen und gucken welche Funktionen ersetzt werden müssen und welche nicht.
Speziell wirst du vor allem gucken müssen, welche Libs gibt es auf der Pandora, welche nicht. Gibt es die Libs die das Ausgangsprogramm verwendet, ist das Portieren oft kein Problem, da du nur keine bis wenige Änderungen am Code vornehmen musst. Gibt es die Libs nicht, so hast du ein großes Problem. Entweder schreibst du dann selbst Code um den der Lib zu ersetzen oder du portierst auch die Lib.

Es gibt sicherlich noch tausende mehr Faktoren die einem das Leben shwer machen können, aber das oben Stehende, empfinde ich als die Hauptfaktoren bei sowas.

Spontan fällt mir noch ein, dass du das Programm evtl nochmal optimieren musst, da der ARM evtl andere Funktionen scchneller ausführt als der X86, aber damit habe ich mich noch nicht auseinander gesetzt.
 
1) /me

2) endianness, 32bit/64bit, assember code and library dependencies are your enemy

3) xmoto setzt meines wissens auf opengl, opengl es ist nur eine abgespeckte version von opengl, wenn du also pech hast, musst du da einiges rumfuhrwerken, wenn du glueck hast, nimmt xmoto sowieso keine funktionen, die nicht in opengl es vorhanden sind. aber um deine 3. frage wie einfach oder schwer es werden kann extra realistisch zu beantworten:

irgendwas zwischen "./configure && make" und wochenlanger arbeit ;)
 
Ok, dann wirst du garantiert rumfuhrwerken müssen, wenn xmoto OpenGL verwendet, wenn ich die OpenGL 2.0 ES Spec richtig im Kopf habe, haben die die Fixed Function Pipeline komplett gestrichen.
 
naja, haengt davon ab wie xmoto opengl verwendet, soweit hab ich mir das noch nicht angeschaut, da da projekt aber relativ jung ist, ist die warscheinlichkeit nicht zu gering, dass es auf die programmable pipeline setzt, aber das ueberlass ich mal MacGyver rauszufinden :D
 
Back
Top