Hi,
ich habe in den vergangenen Tagen weiter versucht, das Beispielprogramm von Beltar zum laufen zu bringen.
Dabei bin ich auf den eigentlichen Kern des Problems gestoßen:
Das ganze läuft nur vernünftig, wenn man die Bibliotheken
dynamisch bindet!
Das hatte ich auch schon unter Linux mit der Open2x- und der dev.gp2x.de-Toolchain (die ich nach dem Tipp von Pliskin zusätzlich installiert habe) herausgefunden. Dynamisch gebunden funktioniert es, statisch gebunden nicht.
Nun hatte ich die Hoffnung, dass es unter Windows eine aktuellere SDL-Lib gibt, die man auch statisch binden kann. Um das zu testen, hab ich einfach mal wieder das gute alte Windows gestartet und die Toolchain von GPH installiert (es gibt übrigens 'ne neue Version unter
http://dev.gp2x.com/sdk/ -> gp2xsdk_windows_080429.zip).
Nachdem ich dann das Projekt von Beltar kompiliert hatte, fiel mir die kleine Dateigröße auf. In den Linker-Optionen sieht man dann, dass hier die Bibliotheken auch nur dynamisch gebunden werden. Kein Wunder also, dass das bei euch so gut funktionierte ...
Wenn man die Linkeroptionen so ändert, dass er statisch linkt, erhält man den von momosxp beschriebenen Fehler: "cannot find -lSDL_inifile ".
O.K., da kann man "-lSDL_inifile" in den Linkeroptionen einfach löschen ...
Bleibt der Fehler mit den "Threads": dazu muss man einfach am Ende der Linkeroptionen ein -lpthread anhängen.
Abgekürzt sehen meine Linkeroptionen also ungefähr so aus:
-static -l... -l... -lSDL -dynamic -... -... -lpthread
Damit konnte ich ein Programm erstellen, welches die SDL-Libs statisch gelinkt hat. Das ganze auf den F200 übertragen und ...
... das selbe Problem wie unter Linux: der Touchscreen reagiert nicht!
(Ach ja: ich hab das Projekt von Beltar natürlich wieder so abgeändert, dass der Mauszeiger überhaupt angezeigt und dort dargestellt wird, wo man den Touchscreen berührt.)
Also nochmal zusammengefasst:
das Projekt von Beltar funktioniert nur (zumindest bei mir), wenn man dynamisch linkt!
Nun habe ich spaßeshalber mal die Libs, die sich auf dem F200 im Ordner /lib befinden mithilfe von STerm auf meine SD-Karte kopiert und dann das ganze weiter in meinen /libs-Ordner der Open2x- bzw. dev.gp2x.de-Toolchain geschoben. Mit einem von beiden konnte ich dann auch statisch linken. Das Resultat lässt mich aber absolut rätselnd zurück:
das funktioniert auch nicht!??!
Woran das nun liegt, sei mal dahingestellt, für mich stellt sich jetzt also erneut die eigentliche Frage:
Wo finde ich eine Version der SDL-Lib, die den Touchscreen unterstützt und die ich statisch linken kann?!?
(Natürlich kann ich erstmal programmieren und alles dynamisch binden, das ganze endet nur dann, wenn ich 'ne Erweiterung der SDL benutzen möchte, die es nicht im /lib-Ordner des F200 gibt ...).
Irgendwo muss es diese Version der SDL geben, da die Leute, die das neue Touchscreen-Beispiel (
http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,46,2533) programmiert haben, auch statisch linken ...
(Vielleicht ist es ja die neue Version der SDL-Lib von DJWillis auf Open2x - die hab ich aber nicht kompiliert gekriegt.
)
Irgendwelche Tipps? (Vielleicht sollte ich diesbzgl. auch mal ein neues Thema starten ...)
Beste Grüße
MojoMan
Edit: Hey, ich glaube, dass ich endlich fündig geworden bin:
http://paeryn.myby.co.uk/libSDL_21.tar.bz2 -> da steht was von Touchscreenunterstützung auf der Seite.
Werde das mal ausprobieren und dann berichten.
Edit2: Bingo! Habe Paeryns SDL-Version über die vorhandene Version rüberkopiert, anschließend das Programm kompiliert und statisch linken lassen. Da daaaa - nun funktioniert endlich auch der Touchscreen!!!