Ziz
Advanced Member
- Joined
- Jan 15, 2006
- Messages
- 3,583
Abend,
vor kurzem habe ich es geschafft mein Linux zu schrotten. Wie sei mal dahingestellt. Auf jedenfall ging auch meine GP2X-Toolchain drauf. Nun wollte ich mir eine neue erstellen. Dazu haben sie mir 4 Wege aufgetan.
1. Open2X Toolchain
2. Die Toolchain von dev.gp2x.de
3. Die offizielle Toolchain von GPH
4. Die gepatchtet DevKitPro Toolchain
Nur will keine richtig funktionieren.
Zu 1. Bei der Open2x Toolchain sagt er mir, dass mein Programm Software FP nutzen würde und die Bibliothek XYZ Hardware FP und das für alle libs. Nunja, Open2X is eh nicht so wichtig. Ich war mit meiner veralteten Original-GPH Toolchain ja ganz zufrieden.
2. Die Toolchain lässt sich installieren, aber wenn ich das etwas kompiliere, gibt mir sterm aus, dass dynamisch gelinkte Bilbiotheken fehlen würde. Soweit ja nicht schlimm, nur kriege ich statisch linken nicht gebacken.
Folgender Kompiliercode:
ergibt folgende Fehler:
Könnte ihr mir sagen, was g++ hören will, damit alles statisch gelinkt wird?
Und zu den letzten beiden Varianten:
Die kann ich nichtmal kompilieren. Bei beiden bricht er ab mit einer Fehlermeldung, dir mir kaum was sagt:
bei 3.
und bei 4.
Könnt ihr mir bei einem Problem helfen?
mfG Cyberpuer
Edit: Hey, ich habe es geschafft mit der Toolchain von dev.gp2x.de etwas statisch zu kompileren:
Es lag wohl an der Reihenfolge der libs. Nun habe ich aber ein neues Problem. Früher waren meine Programme recht klein, nun sind sie 2,4 MB groß. Wenn ich probiere nur eines statisch zu linken (der GP2X vermisste nur die smpeg-lib, glaube ich)
bringt mir das nur ca. 20 neue Dateien, die alles main heißen, verschiedene Endungen haben und bis zu 2 MB groß sind und eine neue 2,4 MB große Enddatei... Was mach ich nun schon wieder falsch?
vor kurzem habe ich es geschafft mein Linux zu schrotten. Wie sei mal dahingestellt. Auf jedenfall ging auch meine GP2X-Toolchain drauf. Nun wollte ich mir eine neue erstellen. Dazu haben sie mir 4 Wege aufgetan.
1. Open2X Toolchain
2. Die Toolchain von dev.gp2x.de
3. Die offizielle Toolchain von GPH
4. Die gepatchtet DevKitPro Toolchain
Nur will keine richtig funktionieren.
Zu 1. Bei der Open2x Toolchain sagt er mir, dass mein Programm Software FP nutzen würde und die Bibliothek XYZ Hardware FP und das für alle libs. Nunja, Open2X is eh nicht so wichtig. Ich war mit meiner veralteten Original-GPH Toolchain ja ganz zufrieden.
2. Die Toolchain lässt sich installieren, aber wenn ich das etwas kompiliere, gibt mir sterm aus, dass dynamisch gelinkte Bilbiotheken fehlen würde. Soweit ja nicht schlimm, nur kriege ich statisch linken nicht gebacken.
Folgender Kompiliercode:
Code:
<i>
</i>/usr/local/gp2xdev/gp2x/bin/g++ -static -D_REENTRANT -DGP2X -w
-I/usr/local/gp2xdev/gp2x/include
-I/usr/local/gp2xdev/include
-I/usr/local/gp2xdev/include/SDL
-o /media/hda9/gp2x/car/car.gpe/media/hda9/gp2x/car/main.c
-L/usr/local/gp2xdev/gp2x/lib
-L/usr/local/gp2xdev/lib
-lpthread -lSDL_image -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lpng
-ljpeg -lvorbisidec -lmad -lfreetype -lsmpeg -lz
Code:
<i>
</i>/usr/local/gp2xdev/lib/libSDL.a(SDL_systhread.o): In function `RunThread':
SDL_systhread.c:(.text+0xc): undefined reference to `pthread_exit'
/usr/local/gp2xdev/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_CreateThread':
SDL_systhread.c:(.text+0x2c): undefined reference to `pthread_attr_init'
SDL_systhread.c:(.text+0x40): undefined reference to `pthread_attr_setdetachstate'
SDL_systhread.c:(.text+0x58): undefined reference to `pthread_create'
/usr/local/gp2xdev/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_SetupThread':
SDL_systhread.c:(.text+0xe8): undefined reference to `pthread_sigmask'
SDL_systhread.c:(.text+0xf4): undefined reference to `pthread_setcanceltype'
/usr/local/gp2xdev/lib/libSDL.a(SDL_systhread.o): In function `SDL_ThreadID':
SDL_systhread.c:(.text+0x124): undefined reference to `pthread_self'
/usr/local/gp2xdev/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_WaitThread':
SDL_systhread.c:(.text+0x130): undefined reference to `pthread_join'
/usr/local/gp2xdev/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_KillThread':
SDL_systhread.c:(.text+0x138): undefined reference to `pthread_cancel'
/usr/local/gp2xdev/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_CreateMutex':
SDL_sysmutex.c:(.text+0x2c): undefined reference to `pthread_mutexattr_init'
SDL_sysmutex.c:(.text+0x38): undefined reference to `pthread_mutexattr_setkind_np'
SDL_sysmutex.c:(.text+0x44): undefined reference to `pthread_mutex_init'
/usr/local/gp2xdev/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_DestroyMutex':
SDL_sysmutex.c:(.text+0x94): undefined reference to `pthread_mutex_destroy'
/usr/local/gp2xdev/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_mutexP':
SDL_sysmutex.c:(.text+0xb8): undefined reference to `pthread_mutex_lock'
/usr/local/gp2xdev/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_mutexV':
SDL_sysmutex.c:(.text+0x118): undefined reference to `pthread_mutex_unlock'
/usr/local/gp2xdev/lib/libSDL.a(SDL_syssem.o): In function `SDL_CreateSemaphore':
SDL_syssem.c:(.text+0x30): undefined reference to `sem_init'
/usr/local/gp2xdev/lib/libSDL.a(SDL_syssem.o): In function `SDL_DestroySemaphore':
SDL_syssem.c:(.text+0x88): undefined reference to `sem_destroy'
/usr/local/gp2xdev/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemTryWait':
SDL_syssem.c:(.text+0xb8): undefined reference to `sem_trywait'
/usr/local/gp2xdev/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemWait':
SDL_syssem.c:(.text+0x100): undefined reference to `sem_wait'
/usr/local/gp2xdev/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemValue':
SDL_syssem.c:(.text+0x1e0): undefined reference to `sem_getvalue'
/usr/local/gp2xdev/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemPost':
SDL_syssem.c:(.text+0x220): undefined reference to `sem_post'
/usr/local/gp2xdev/lib/libSDL_mixer.a(mixer.o): In function `Mix_LoadWAV_RW':
mixer.c:(.text+0x26c): undefined reference to `SDL_LoadWAV_RW'
mixer.c:(.text+0x320): undefined reference to `SDL_FreeWAV'
mixer.c:(.text+0x3d8): undefined reference to `SDL_FreeWAV'
mixer.c:(.text+0x410): undefined reference to `SDL_FreeWAV'
/usr/local/gp2xdev/lib/libSDL_mixer.a(mixer.o): In function `mix_channels':
mixer.c:(.text+0x23d8): undefined reference to `SDL_MixAudio'
mixer.c:(.text+0x2548): undefined reference to `SDL_MixAudio'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music_ogg.o): In function `OGG_playAudio':
music_ogg.c:(.text+0x12c): undefined reference to `SDL_MixAudio'
/usr/local/gp2xdev/lib/libSDL_mixer.a(wavestream.o): In function `WAVStream_PlaySome':
wavestream.c:(.text+0x1b4): undefined reference to `SDL_MixAudio'
/usr/local/gp2xdev/lib/libsmpeg.a(mpegtoraw.lo): In function `Play_MPEGaudio(MPEGaudio*, unsigned char*, int)':
mpegtoraw.cpp:(.text+0xa84): undefined reference to `SDL_MixAudio'
/usr/local/gp2xdev/lib/libsmpeg.a(mpegtoraw.lo):mpegtoraw.cpp:(.text+0xb44): more undefined references to `SDL_MixAudio' follow
/usr/local/gp2xdev/lib/libsmpeg.a(MPEGvideo.lo): In function `MPEGvideo::~MPEGvideo()':
MPEGvideo.cpp:(.text+0x3f4): undefined reference to `SDL_FreeYUVOverlay'
/usr/local/gp2xdev/lib/libsmpeg.a(MPEGvideo.lo): In function `MPEGvideo::~MPEGvideo()':
MPEGvideo.cpp:(.text+0x45c): undefined reference to `SDL_FreeYUVOverlay'
/usr/local/gp2xdev/lib/libsmpeg.a(MPEGvideo.lo): In function `MPEGvideo::~MPEGvideo()':
MPEGvideo.cpp:(.text+0x4bc): undefined reference to `SDL_FreeYUVOverlay'
/usr/local/gp2xdev/lib/libsmpeg.a(MPEGvideo.lo): In function `MPEGvideo::SetDisplay(SDL_Surface*, SDL_mutex*, void (*)(SDL_Surface*, int, int, unsigned int, unsigned int))':
MPEGvideo.cpp:(.text+0x7dc): undefined reference to `SDL_FreeYUVOverlay'
MPEGvideo.cpp:(.text+0x7f8): undefined reference to `SDL_CreateYUVOverlay'
/usr/local/gp2xdev/lib/libsmpeg.a(MPEGvideo.lo): In function `MPEGvideo::SetDisplayRegion(int, int, int, int)':
MPEGvideo.cpp:(.text+0x9c0): undefined reference to `SDL_FreeYUVOverlay'
MPEGvideo.cpp:(.text+0x9d4): undefined reference to `SDL_CreateYUVOverlay'
/usr/local/gp2xdev/lib/libsmpeg.a(gdith.lo): In function `MPEGvideo::DisplayFrame(vid_stream*)':
gdith.cpp:(.text+0x20): undefined reference to `SDL_LockYUVOverlay'
gdith.cpp:(.text+0x1ec): undefined reference to `SDL_DisplayYUVOverlay'
gdith.cpp:(.text+0x22c): undefined reference to `SDL_UnlockYUVOverlay'
/usr/local/gp2xdev/gp2x/lib/libstdc++.a(eh_alloc.o):(.rodata._ZZ18__gthread_active_pvE20__gthread_active_ptr+0x0): undefined reference to `pthread_cancel'
/usr/local/gp2xdev/gp2x/lib/libstdc++.a(eh_alloc.o): In function `__cxa_free_exception':
/usr/local/gp2xdev/toolchain/gcc-4.0.2/build-gp2x-c++/gp2x/libstdc++-v3/include/gp2x/bits/gthr-default.h:528: undefined reference to `pthread_mutex_unlock'
/usr/local/gp2xdev/toolchain/gcc-4.0.2/build-gp2x-c++/gp2x/libstdc++-v3/include/gp2x/bits/gthr-default.h:510: undefined reference to `pthread_mutex_lock'
/usr/local/gp2xdev/gp2x/lib/libstdc++.a(eh_alloc.o): In function `__cxa_allocate_exception':
../../../../libstdc++-v3/libsupc++/eh_alloc.cc:110: undefined reference to `pthread_mutex_unlock'
../../../../libstdc++-v3/libsupc++/eh_alloc.cc:110: undefined reference to `pthread_mutex_lock'
/usr/local/gp2xdev/gp2x/lib/libstdc++.a(eh_globals.o):(.rodata._ZZ18__gthread_active_pvE20__gthread_active_ptr+0x0): undefined reference to `pthread_cancel'
/usr/local/gp2xdev/lib/gcc/gp2x/4.0.2/libgcc.a(unwind-sjlj.o): In function `fc_key_init_once':
unwind-sjlj.c:(.text+0xc8): undefined reference to `pthread_cancel'
/usr/local/gp2xdev/lib/gcc/gp2x/4.0.2/libgcc.a(unwind-sjlj.o):(.data.rel.ro+0x0): undefined reference to `pthread_cancel'
collect2: ld returned 1 exit status
make: *** [gp2x] Fehler 1
Und zu den letzten beiden Varianten:
Die kann ich nichtmal kompilieren. Bei beiden bricht er ab mit einer Fehlermeldung, dir mir kaum was sagt:
bei 3.
Code:
make[2]: Betrete Verzeichnis '/gp2xsdk/Tools/src/glibc-2.2.5/csu'
arm-gp2x-linux-gcc version.c -c -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -g -I../include -I. -I/gp2xsdk/Tools/build/gp2x/glibc/csu -I.. -I../libio -I/gp2xsdk/Tools/build/gp2x/glibc -I../sysdeps/arm/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/arm -I../sysdeps/unix/sysv/linux/arm -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/arm -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/arm/fpu -I../sysdeps/arm -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /gp2xsdk/Tools/lib/gcc/arm-gp2x-linux/3.4.6/include -isystem /gp2xsdk/Tools/kernel/linux-2.4.25-gp2x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DHAVE_INITFINI -o /gp2xsdk/Tools/build/gp2x/glibc/csu/version.o
In file included from version.c:32:
/gp2xsdk/Tools/build/gp2x/glibc/csu/version-info.h:1: error: missing terminating " character
/gp2xsdk/Tools/build/gp2x/glibc/csu/version-info.h:2: error: missing terminating " character
/gp2xsdk/Tools/build/gp2x/glibc/csu/version-info.h:3: error: missing terminating " character
/gp2xsdk/Tools/build/gp2x/glibc/csu/version-info.h:4: error: missing terminating " character
version.c:36: error: syntax error before string constant
make[2]: *** [/gp2xsdk/Tools/build/gp2x/glibc/csu/version.o] Fehler 1
make[2]: Verlasse Verzeichnis '/gp2xsdk/Tools/src/glibc-2.2.5/csu'
make[1]: *** [csu/subdir_lib] Fehler 2
make[1]: Verlasse Verzeichnis '/gp2xsdk/Tools/src/glibc-2.2.5'
make: *** [all] Fehler 2
Error : Failed building glibc
Code:
<i>
</i>[...]
../linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory
make[2]: Verlasse Verzeichnis '/home/alexander/gp2xsdk/glibc-2.3.5/csu'
make[1]: *** [csu/subdir_lib] Fehler 2
make[1]: Verlasse Verzeichnis '/home/alexander/gp2xsdk/glibc-2.3.5'
make: *** [all] Fehler 2
Error building glibc
Könnt ihr mir bei einem Problem helfen?
mfG Cyberpuer
Edit: Hey, ich habe es geschafft mit der Toolchain von dev.gp2x.de etwas statisch zu kompileren:
Code:
/usr/local/gp2xdev/gp2x/bin/g++ -O2 -D_REENTRANT -DGP2X -w -I/usr/local/gp2xdev/gp2x/include -I/usr/local/gp2xdev/include -I/usr/local/gp2xdev/include/SDL -o /media/hda9/gp2x/car/car.gpe /media/hda9/gp2x/car/main.c -L/usr/local/gp2xdev/gp2x/lib -L/usr/local/gp2xdev/lib -static -lSDL_image -lSDL_mixer -lSDL_ttf -lpng -ljpeg -lvorbisidec -lmad -lfreetype -lsmpeg -lz -lSDL -lpthread
Code:
/usr/local/gp2xdev/gp2x/bin/g++ -O2 -D_REENTRANT -DGP2X -w -I/usr/local/gp2xdev/gp2x/include -I/usr/local/gp2xdev/include -I/usr/local/gp2xdev/include/SDL -o /media/hda9/gp2x/car/car.gpe /media/hda9/gp2x/car/main.c -L/usr/local/gp2xdev/gp2x/lib -L/usr/local/gp2xdev/lib -lSDL_image -lSDL_mixer -lSDL_ttf -lpng -ljpeg -lvorbisidec -lmad -lfreetype -static -lsmpeg -dynamic -lz -lSDL -lpthread