SDL kompilieren


MentalFS

Member
Joined
Oct 5, 2005
Messages
455
Age
43
Location
Düsseldorf, Germany
Website
Visit site
Gerade bin ich auf eine Anleitung gestoßen, wie man SDL_mixer für den GP2X kompiliert: http://wiki.gp2x.org/wiki/SDL_mixer

Wie man sieht muss es erst einmal gepatcht werden.
Nun frage ich mich, ob man das dann noch für was anderes als den GP2X benutzen kann.

Ich hab jetzt z.B. schonmal Eclipse und cygwin installiert und arbeite mich wieder in C/C++ ein (zulange mit Java gearbeitet :roll:).
SDL hab ich noch nicht kompiliert.

Wenn ich jetzt aber SDL usw. inklusive SDL_mixer normal für meinen PC kompiliere, um damit wieder arbeiten zu können, bekomm ich dann später Probleme?
Ich brauch ja für's GP2X später "Spezialversionen" von SDL, SDL_mixer und vielleicht sogar noch mehr Libs...
 
Na toll ich dachte es gäb ne Themenbezogene Antwort^^

Die Libriries werden alle einfach libSDL(.a, .dll usw) genannt, d.h. wenn ich ein zweites SDL für den GP2X kompiliere muss ich wohl irgendwie dafür sorgen, dass es in ein Unterverzeichnis geworfen wird und dann auch beim kompilieren der Anwendung gucken dass ich die andere sdl-config aufrufe.

Werd mal heute Abend oder morgen gucken ob sowas irgendwie funktioniert.
 
Hi

Ich glaube du hast da einen falschen gedanken. Der patch bezieht sich darauf, das die sdl_mixer auf dem gp2x leuft. Viele Linux Libs brauchen halt einen kleinen tweak um auf neuer hardware zu laufen, zb. weil man sie bisher nur auf x86 benutzt hat und sie daher nicht ganz endian clean waren. Das bezieht sich aber auf den lauf der lib auf dem gerät, es verändert nicht die programmier api.

Heist, du kannst zum entwickeln/üben die normale sdl benutzen, auf dem gp2x wird die sich dann 100% gleich verhalten.

Mfg Suschman

P.s: Der patch ist nichtmal direkt gp2x spezifisch, er past die lib nur an eine neuere version des ogg vorbis audiocodecs an (die fixed-point math version heist tremor, der gp2x hat ja kein floatingpoint). Siehe Patchfile ausschnitt. hat auf jedenfall keinen einflussdarauf wie sich die lib für dich verhält, das ist ja der sinn einer lib so kram zu kaschieren ^_^.
- #include <vorbis/vorbisfile.h>
+ #include <tremor/ivorbisfile.h>
...
--- SDL_mixer-1.2.6/music_ogg.h 2004-12-16 15:20:14.000000000 +1000
+++ SDL_mixer-1.2.6-patched/music_ogg.h 2005-10-12 13:16:54.000000000 +1000
 
Naja ich hab da noch nicht die große Erfahrung mit muss ich zugeben.

Also braucht man sich dann nur SDL zu ziehen (ggf. patchen) und dann kann man am PC loslegen.
Kann man das dann einfach mit anderen Compileroptionen laufen lassen und schon hat man die Binaries fürs GP2X?
Dann hätt ich mir's jetzt wirklich schwerer vorgestellt als es ist.
 
Hi

Du must natürlich immer mal wieder kleinere ungereimtheiten zw. den verschiedenen platformen gp/pc beachten, aber wenn du sauber linux-konform mit der sdl programmierst und als Ausgabeformat 320x240 auf dem pc benutzt ist es haubtsächlich eine sache des neu-durch-den-compiler-schiebens, ja.

Mfg Suschman
 
Ich hab angefangen mit dem FreePascal Compiler was für den GP2x zu proggen und habe festgestellt, dass es arge Probleme mit SDL gibt.
Hab mal mit woogal geredet und der meinte das man die SDL befehle statisch linken sollte und dazu sind die orginalen a files nötig mit den passenden headern.
Und ich hab mitlerweile 3 verschiedene libSDL.a files i368,arm-linux von woogal und arm-linux von DJWillis und wäre nicht überrascht wenn ich noch ne version demnächst in die finger bekomme. Die mit ein vorhandenen FreePascal header zu compilieren war bisher nicht möglich <_< . Ich schreib nun ein passenden eigenen header zu der libSDL.a file von DJWillis aber es wäre wesentlich leichter wenn mal langsam ne SDK erscheinen würde.
 
Ich benutzte FPC und habe eine cross compiliertes SDL :wink: .
Das Problem im meinem Fall ist das ich noch nicht den Ort der von der gp2x genutzten header sowie sdl source files gefunden habe. Muss mir auch erstmal noch die CPU Specs reinuziehen für ordentliche asm routinen. Ne menge holz und alles noch ziemlich verstreut und rar geseht.
 
Mir ist gar nicht aufgefallen, dass die ursprüngliche Frage nicht beantwortet wurde.

Sie lautet:
Für die Libs, die der Crosscompiler braucht wird eine eigene Umgebung eingerichtet.
Meine nativen Libraries sind in /usr/lib und konsorten,
die für arm-unknown-linux-gnu sind sinnigerweise in /usr/arm-unknown-linux-gnu/usr/libs und müssen als
LDFLAG an den Linker übergeben werden.

Works just fine.

€: Mit "wird eingerichtet" meine ich, dass du das machen musst :E
 
SirDzstic said:
Mir ist gar nicht aufgefallen, dass die ursprüngliche Frage nicht beantwortet wurde.

Sie lautet:
Für die Libs, die der Crosscompiler braucht wird eine eigene Umgebung eingerichtet.
Meine nativen Libraries sind in /usr/lib und konsorten,
die für arm-unknown-linux-gnu sind sinnigerweise in /usr/arm-unknown-linux-gnu/usr/libs und müssen als
LDFLAG an den Linker übergeben werden.

Works just fine.

€: Mit "wird eingerichtet" meine ich, dass du das machen musst :E
Hmm, was fuer ein Devkit verwendest du oder hast du den Cross-Compiler nach der Wiki-Vorlage selbst gebaut? Als OS Linux - nehme ich an (obwohl Cygwin ja auch geht)?

Ansonsten hat mir DJWillis gesagt, dass es im CVS von Open2x einen Haufen Build-Skripte mit den entsprechenden Bibliotheken gibt, die bereits fuer die Verwendung mit dem GP2x gepatcht wurden (z.B. libtremor fuer SDL_mixer, etc). Das alles wurde aber noch nicht herausgegeben, da es noch etwas hakelig ist.
 
Ich habe die Toolchain, die glibc und gcc von crossdev kompilieren lassen.
Das ist ein Script, das im portage-tree von gentoo ist.
Es verwendet einen Portage-overlay um den crosscompiler etcpp. zu
kompilieren, deshalb bezweifle ich, dass das bei anderen Distributionen
auch so geht.

Das lässt sich auch per Hand machen. Es ist allerdings etwas Arbeit,
deshalb würde ich dafür irgend eins der vielen im Umlauf befindlichen
Skripten benutzen.
 
Back
Top