Von Win Visual Studio C++ zu Linux ARM Pandora // Fragen


Johannes Roth

Still Fresh
Joined
Dec 22, 2009
Messages
7
Liebe Community,

ich entwickle momentan mit der SDL und C++ hypothetisch für die Pandora. Momentan nutze ich Visual Studio C++, später dann wohl die Express-Version. Ich frage mich nun, wie ich meinen Code so kompiliere, dass er auf der Pandora läuft. Ich wurde an die Devs in diesem Forum verwiesen, also: Habt ihr ein paar Tipps? Installiert man im einfachsten Fall auf der Pandora eine Entwicklungsumgebung und kompiliert dort seinen Code? Gibt es eine andere Lösung (idealer wäre natürlich das kompilieren am Windows PC, damit man nicht von der Pandora abhängig ist).

Ich hänge mal gleich zwei weitere Fragen an:

- Welche Linux-Distri könnte ich mir virtuell installieren, um die Code-Kompatibilität direkt am Windows-PC zu testen?
- Wo sehe ich, welche Bibliotheken ich auf der Pandora verwenden kann? Dass die SDL geht, liest man ja überall, aber woher weiß man es? Hängt das mit der Linux-Distri zusammen? Wird dort dann die SDL funktionsgleich "portiert"? Worauf ich hinaus will: Wie gehe ich sicher, dass mein Code auch auf der Pandora funktioniert?
- Läuft die STL denn auch?

Sorry, ich komme rein aus der Entwicklersicht bisher nur aus der Windowsecke.

Viele Grüße

Johannes
 
Virtuell kannst dir alle Distributionen installieren. Wenn du 512 RAM (ram, nicht im swap) frei hast du ein paar GB auf der Platte, dann zieh dir Virtualbox und installiere dir beliebige Distributionen. Ist recht einfach, die grundlegenden Sachen laufen über einen Assistenten und installieren kannst du vom Iso Image. Kannst auch Live-CDs ganz ohne virtuelle Festplatte laufen lassen. Ubuntu und Suse dürften wohl für Einsteiger am besten sein.

Tja, das mit den Libs frag ich mich auch, da ist mir die Doku was zu dürftig (wie immer) und ich warte lieber erstmal bis ich das Gerät in der Hand habe.

Natürlich läuft STL, ist ja ein Bestandteil der C++ Spezifikationen. Zur Not gibt es immer noch STLport.

Worauf du dich einstellen darfst bzw solltest, das sind neue Warnung und evt. sogar Fehler bekommst, da beide Compiler unterschiedliche Sachen durchgehen lassen. Deswegen sollte man immer die Warnlevel auf der höchste Stufe haben. Wenn du Code so bastelst, dass der ohne Warnungen auf den höchsten Warnlevels von beiden Compilern geschluckt wird, dann ist der Code schon recht portabel.
Glück hast du insofern, das die Pandora wie die x86 im Little-Endian Modus laufen wird. Brauchst dir also keine Gedanken machen. Oh, und Dateipfade werden anders dargestellt.

Ich hoffe du hast so wenig wie möglich Windows-Funktionen benutzt.
 
Danke für die Tipps und Infos.

Was ich meinte war: Wenn mein Spiel auf Suse läuft, läuft es dann auch auf der Pandora (rein von der Kompatibilität her)? Linux als Anwender und Administrator nutze ich immer mal wieder, ist soweit also kein Problem.

Die Warnlevel-Info werde ich natürlich gleich umsetzen. Bisher sollte aber nichts vom Code Warnungen werfen und auf Windowsfunktionen habe ich natürlich verzichtet, es sei denn, es gibt SDL-spezifische Teile, die nur unter Windows laufen (zumindest in der Referenz habe ich bisher aber nichts davon gelesen).

Unter Linux wäre Code::Blocks mit SDL ja kein Problem, oder?
 
Johannes Roth said:
Ich frage mich nun, wie ich meinen Code so kompiliere, dass er auf der Pandora läuft.
Dann dürfte es für Dich am einfachsten sein, wenn Du Deine gewohnte Entwicklungsumgebung weiter benutzen kannst und Dir einen Cross Compiler einrichtest.

Ich bin kein Entwickler, nur ein DAU der sich gerade versucht einen CrossCompiler einzurichten, weil ich ein Programm auf der Pandora laufen lassen möchte welches nicht von allgemeinem Interesse ist.

Bisher habe ich einige FAQs zu dem Thema gefunden, auch hier im Forum ist der Verweis auf http://wiki.openpandora.de/Cross-Compiler_einrichten wobei ich daran scheitere das die Codesourcery toolchain anscheinend einen X11 Desktop benötigt.

Wenn jemand im Rahmen dieser Diskusion hier noch einen Hinweis bringen könnte wie ich eine Cross Compiler Toolchain auf einer Shell-Console zum laufen bringen kann wäre ich dankbar und würde es ins Wiki stellen.
Johannes Roth said:
Welche Linux-Distri könnte ich mir virtuell installieren, um die Code-Kompatibilität direkt am Windows-PC zu testen?

Die Gelegenheit ist günstig eine solche Umgebung unter dem vor zwei Tagen frisch erschienenen Ubuntu 10.04 LTS zu erstellen, diese Version hat Langzeitsupport für 5 Jahre. Damit hätte man für die nächsten 5 Jahre ein freies mit Sicherheitspatches versorgtes Grundsystem.
Johannes Roth said:
Wo sehe ich, welche Bibliotheken ich auf der Pandora verwenden kann?
Notfalls lieferst Du Deine eigenen benötigten Biliotheken einfach mit.
Johannes Roth said:
Wie gehe ich sicher, dass mein Code auch auf der Pandora funktioniert?
In dem Du Deine Armada an Alphatestern drauf los lässt? ;)
 
double7 said:
Johannes Roth said:
Ich frage mich nun, wie ich meinen Code so kompiliere, dass er auf der Pandora läuft.
Dann dürfte es für Dich am einfachsten sein, wenn Du Deine gewohnte Entwicklungsumgebung weiter benutzen kannst und Dir einen Cross Compiler einrichtest.
Das Visual Studio sehr Cross-Compilerfreundlich ist wage ich zu bezweiflen.
Ich bin kein Entwickler, nur ein DAU der sich gerade versucht einen CrossCompiler einzurichten, weil ich ein Programm auf der Pandora laufen lassen möchte welches nicht von allgemeinem Interesse ist.

Bisher habe ich einige FAQs zu dem Thema gefunden, auch hier im Forum ist der Verweis auf http://wiki.openpandora.de/Cross-Compiler_einrichten wobei ich daran scheitere das die Codesourcery toolchain anscheinend einen X11 Desktop benötigt.
Ein Cross-Compiler ist schon nciht ganz einfach. Es geht ja nicht nur um ein Tool das den Code richtig kompiliert, auch die ganze Laufzeitumgebung und die benötigten Bibliotheken müssen passend sein.
Johannes Roth said:
Welche Linux-Distri könnte ich mir virtuell installieren, um die Code-Kompatibilität direkt am Windows-PC zu testen?

Die Gelegenheit ist günstig eine solche Umgebung unter dem vor zwei Tagen frisch erschienenen Ubuntu 10.04 LTS zu erstellen, diese Version hat Langzeitsupport für 5 Jahre. Damit hätte man für die nächsten 5 Jahre ein freies mit Sicherheitspatches versorgtes Grundsystem.
[/quote]
Also gerade so VMs sind Wegwerfartikel. In unter einer Stunde hast du ein neues System aufgesetzt, und das kannst du auch nebenbei machen. Da brauchst du keinen Langzeitsupport. Aber da es eh gerade die normale Version ist, warum nicht..
Was ich meinte war: Wenn mein Spiel auf Suse läuft, läuft es dann auch auf der Pandora (rein von der Kompatibilität her)?
Suse und Admin? *In den Keller geh...*
Spass beiseite... Wenn es läuft, dann kannst du davon ausgehen, das es auch auf der Pandora läuft. Aber frag nicht nach der Geschwindigkeit. Nur bei OpenGL wird's haarig, da Pandora OpenGL ES verwendet, was nicht direkt OpenGL kompatibel ist.

Schau dir statt Code::Blocks mal CodeLite an, da scheint die Entwicklung schneller von statten zu gehen. Ansonsten halt Eclipse, da bist erweiterungsmässig am besten versorgt.
 
@ double 7

Danke für die Tipps. Dann werde ich mir das Ubuntu wohl mal installieren und zum Testen verwenden. Wenn du noch etwas mit deinem Cross-Compiler erreichst, melde dich doch bitte :)

@ Evil Azrael

Keller hin oder her, für einen Windows-Admin ist ein Suse via SSH (wenigstens mit YAST) auch eine Erfahrung ;-)

Die Aussage, dass es "wenn es läuft" auch auf der Pandora ausführbar ist, bringt mich dann schon einmal weiter. Dann werde ich es primär vor Erscheinung so testen. Geschwindigkeit ist natürlich immer ein Problem, aber mittlerweile schreibe ich hoffentlich effizient genug. OpenGL ist momentan für meine Zwecke erst einmal unwichtig, wird später aber noch interessant, also danke für den Hinweis :)

CodeLite schaue ich mir mal an. Dass Eclipse unter Linux läuft, wusste ich noch gar nicht, hört sich aber sehr angenehm an :) Danke!
 
Öh, gerade Eclipse ist doch als Java-Programm recht plattformunabhängig (Wenn man man mal von verschiedenen nativen Bibliotheken absieht) und meiner Erfahrung nach läuft es um Meilen besser mit Linux als mit Cygwin/MinGW. Auch wenn ich mit letzterem die meiste Zeit arbeite muss ich doch oft zum Debuggen nach Linux, mit dem gleichen Code übrigens ;). Bei Zeiten solltest du dir vielleicht Valgrind reinziehen. Ein verdammt gutes Tool um Speicherprobleme zu finden.

Das wichtigste sind halt die Bibliotheken und Pfade, ansonsten ist die Pandora ja auch nur eine Linuxkiste mit etwas anderer CPU ;)
 
Ab VS 2005 lassen sich CrossCompiler einbinden und wird unter http://wiki.gp2x.org/wiki/Using_Visual_C_2005_Express_Edition beschrieben. Dort steht zwar das für den GP2X beschrieben, sollte aber Prinzipiell ähnlich funktionieren. Die ToolChain des GP2X und Co. kann verwendet werden, solange die Bibliotheken dynamisch eingebunden werden.

Gruß
Thomas
 
Back
Top