SDL aber woher


Krux

Active Member
Joined
Feb 28, 2006
Messages
556
Ich hab jetzt mir endlich mal das open2x SDK heruntergeladen, und in mein Linux installiert. Aber ich hab noch keine libs gefunden. Also welches SDL paket brauche ich nun, damit ich mein Projekt auch linken kann?

Noch ne frage zum SDK, ich hab irgendwie zwei bin ordner, welcher davon ist denn jetzt der richtige?
/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin
/opt/open2x/gcc-4.1.1-glibc-2.3.6/arm-open2x-linux/bin
beide enthalten binaries von compilern
 
Krux said:
Noch ne frage zum SDK, ich hab irgendwie zwei bin ordner, welcher davon ist denn jetzt der richtige?
/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin
/opt/open2x/gcc-4.1.1-glibc-2.3.6/arm-open2x-linux/bin
beide enthalten binaries von compilern

ersteres müsste für win/linux sein. letzteres ist für die gp2x.

ich würde ersteres zum testen unter windows/ linux nehmen. das letztere unter dem gp2x linux, bzw. unter der open2x firmware. allerdings... die final wird erst releast. von daher rate ich dir, zur zeit, die toolchains für die firmware von gph (fw 2.X, 3.X usw.) zu nutzen.

wenn du spiele für die gp2x basteln willst, halte dich erst einmal an die firmwares usw. von gph. auch, wenn ich bereits die open2x firmware getestet habe, ist das risiko immer noch sehr hoch, das du deine gp2x brickst. und das kostet dir 10€ + versand, fürs unbricken von ed. ausser, deine stammt aus dem gp2x shop von ed. dann kostet dir das nur die versandkosten zum einsenden...
 
Krux said:
Noch ne frage zum SDK, ich hab irgendwie zwei bin ordner, welcher davon ist denn jetzt der richtige?
/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin
/opt/open2x/gcc-4.1.1-glibc-2.3.6/arm-open2x-linux/bin
beide enthalten binaries von compilern

Das erste Verzeichnis sollte Binaries enthalten, die für deinen Rechner (x86 oder x86_64) kompiliert sind, das andere Verzeichnis müsste ARM-Binaries enthalten. Die lassen sich dann nicht auf dem PC ausführen (kannst du einfach ausprobieren).
Die x86-Binaries vom GCC im open2x-Verzeichnis erstellen aber trotzdem ARM-Executables. Wenn du ganz normale Ausführbare Dateien für den PC erstellen möchtest, kannst du ja einfach den normalen GCC benutzen.
Gamepower said:
ersteres müsste für win/linux sein. letzteres ist für die gp2x.

ich würde ersteres zum testen unter windows/ linux nehmen. das letztere unter dem gp2x linux, bzw. unter der open2x firmware. allerdings... die final wird erst releast. von daher rate ich dir, zur zeit, die toolchains für die firmware von gph (fw 2.X, 3.X usw.) zu nutzen.

Das ist so nicht richtig. Man kann ja auch mit der open2x Toolchain statische Binaries erzeugen, die dann auch auf der Standard-GP2X-Firmware laufen.
 
wejp said:
Gamepower said:
ersteres müsste für win/linux sein. letzteres ist für die gp2x.

ich würde ersteres zum testen unter windows/ linux nehmen. das letztere unter dem gp2x linux, bzw. unter der open2x firmware. allerdings... die final wird erst releast. von daher rate ich dir, zur zeit, die toolchains für die firmware von gph (fw 2.X, 3.X usw.) zu nutzen.

Das ist so nicht richtig. Man kann ja auch mit der open2x Toolchain statische Binaries erzeugen, die dann auch auf der Standard-GP2X-Firmware laufen.

das lief bei mir net auf der open2x fw... auf der fw 3.0 von gph dagegen lief mein kleines test proggi...
 
Gamepower said:
wejp said:
Gamepower said:
ersteres müsste für win/linux sein. letzteres ist für die gp2x.

ich würde ersteres zum testen unter windows/ linux nehmen. das letztere unter dem gp2x linux, bzw. unter der open2x firmware. allerdings... die final wird erst releast. von daher rate ich dir, zur zeit, die toolchains für die firmware von gph (fw 2.X, 3.X usw.) zu nutzen.

Das ist so nicht richtig. Man kann ja auch mit der open2x Toolchain statische Binaries erzeugen, die dann auch auf der Standard-GP2X-Firmware laufen.

das lief bei mir net auf der open2x fw... auf der fw 3.0 von gph dagegen lief mein kleines test proggi...

Also, mein Recompile von Methane Bros., der mit der open2x toolchain compiliert wurde, läuft ach unter 2.0 und 3.0...
 
So, danke soweit, das hat mir schonmal sehr geholfen. Jetzt hoffe ich doch mal, das alles klappt.

Edit: jetzt hab ich aber ein neues Problem. Irgendwie hab ich nirgendwo das SDL paket gefunden, das ich gesucht habe, nur die libSDL aus dem archiv, ein vollständiges Paket mit headern und libs blieb mir verborgen, also hab ich einfach die header aus meiner linux Distribution genommen, die Methoden sollten ja eigentlich alle identisch sein, nun hab ich aber ein Problem, hier der Fehler:
Code:
Running "/usr/bin/make  -f Makefile CONF=GP2X_Release" in /home/arne/Arbeitsbereich/netbeans/GamepadWriter

/usr/bin/make -f nbproject/Makefile-GP2X_Release.mk SUBPROJECTS= .build-conf
make[1]: Betrete Verzeichnis '/home/arne/Arbeitsbereich/netbeans/GamepadWriter'
mkdir -p build/GP2X_Release/GNU_1-Generic
arm-open2x-linux-g++    -c -g -DGP2X -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include/SDL -I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include -o build/GP2X_Release/GNU_1-Generic/main.o main.cc
mkdir -p dist/GP2X_Release/GNU_1-Generic
arm-open2x-linux-g++     -o dist/GP2X_Release/GNU_1-Generic/gamepadwriter build/GP2X_Release/GNU_1-Generic/main.o -L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib -lSDL -lSDL_ttf 
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_Init':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:213: undefined reference to `FT_Init_FreeType'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `Find_Glyph':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:435: undefined reference to `FT_Load_Glyph'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:501: undefined reference to `FT_Render_Glyph'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:433: undefined reference to `FT_Get_Char_Index'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:503: undefined reference to `FT_Render_Glyph'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:496: undefined reference to `FT_Outline_Transform'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_CloseFont':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:663: undefined reference to `FT_Done_Face'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_OpenFontIndexRW':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:289: undefined reference to `FT_Open_Face'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:325: undefined reference to `FT_Set_Pixel_Sizes'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:301: undefined reference to `FT_Set_Char_Size'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:310: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:311: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:313: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:314: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:315: undefined reference to `FT_MulFix'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_Quit':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1740: undefined reference to `FT_Done_FreeType'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_SizeUNICODE':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:895: undefined reference to `FT_Get_Kerning'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_RenderUNICODE_Blended':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1613: undefined reference to `FT_Get_Kerning'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_RenderUNICODE_Solid':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1103: undefined reference to `FT_Get_Kerning'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_RenderUNICODE_Shaded':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1364: undefined reference to `FT_Get_Kerning'
collect2: ld returned 1 exit status
make[1]: *** [dist/GP2X_Release/GNU_1-Generic/gamepadwriter] Fehler 1
make[1]: Verlasse Verzeichnis '/home/arne/Arbeitsbereich/netbeans/GamepadWriter'
make: *** [.build-impl] Fehler 2

Build failed. Exit value 2.

Wenn man aber genau hinschaut, sind aber doch SDL und SDL_ttf gelinkt, also was mache ich falsch?
 
Stell die "-lSDL_ttf" vor der Einbindung von SDL. Der gcc - Compiler liest die eingebundenen Bibliotheken von rechts nach links, daher kann es sein, das der Compiler die angegebene Bibliothek manchmal nicht korrekt auswertet.

Gruß
Thomas
 
leider hilft das auch nicht.
Code:
Running "/usr/bin/make  -f Makefile CONF=GP2X_Release" in /home/arne/Arbeitsbereich/netbeans/GamepadWriter

/usr/bin/make -f nbproject/Makefile-GP2X_Release.mk SUBPROJECTS= .build-conf
make[1]: Betrete Verzeichnis '/home/arne/Arbeitsbereich/netbeans/GamepadWriter'
mkdir -p dist/GP2X_Release/GNU_1-Generic
arm-open2x-linux-g++     -o dist/GP2X_Release/GNU_1-Generic/gamepadwriter build/GP2X_Release/GNU_1-Generic/main.o -L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib -lSDL_ttf -lSDL 
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_Init':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:213: undefined reference to `FT_Init_FreeType'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `Find_Glyph':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:435: undefined reference to `FT_Load_Glyph'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:501: undefined reference to `FT_Render_Glyph'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:433: undefined reference to `FT_Get_Char_Index'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:503: undefined reference to `FT_Render_Glyph'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:496: undefined reference to `FT_Outline_Transform'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_CloseFont':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:663: undefined reference to `FT_Done_Face'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_OpenFontIndexRW':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:289: undefined reference to `FT_Open_Face'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:325: undefined reference to `FT_Set_Pixel_Sizes'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:301: undefined reference to `FT_Set_Char_Size'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:310: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:311: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:313: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:314: undefined reference to `FT_MulFix'
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:315: undefined reference to `FT_MulFix'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_Quit':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1740: undefined reference to `FT_Done_FreeType'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_SizeUNICODE':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:895: undefined reference to `FT_Get_Kerning'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_RenderUNICODE_Blended':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1613: undefined reference to `FT_Get_Kerning'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_RenderUNICODE_Solid':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1103: undefined reference to `FT_Get_Kerning'
/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/libSDL_ttf.a(SDL_ttf.o): In function `TTF_RenderUNICODE_Shaded':
/usr/local/gp2x/libs-gp2x/SDL_ttf/SDL_ttf.c:1364: undefined reference to `FT_Get_Kerning'
collect2: ld returned 1 exit status
make[1]: *** [dist/GP2X_Release/GNU_1-Generic/gamepadwriter] Fehler 1
make[1]: Verlasse Verzeichnis '/home/arne/Arbeitsbereich/netbeans/GamepadWriter'
make: *** [.build-impl] Fehler 2

Build failed. Exit value 2.
 
Wo bindest Du die Bibliothek freetype ein? Diese muss zusätzlich angegeben werden und zwar vor der SDL_ttf. Und Freetype könnte weitere Bibliotheken verlangen.
Code:
<i>
</i>-lfreetype

Gruß
Thomas
 
Back
Top