Gast
#2296023
Hi, ich will mich ein bisschen tiefer in Linux/EmbeddedLinux einarbeiten und habe mir dafür ein BeagleBoard gekauft. Allerdings macht mir das CrossCompilieren Probleme. Das obligatorische HelloWorld-Programm bekomme ich noch problemlos uebersetzt und ausgeführt. Allerdings scheitert es schon beim nächsten Problem. Ich würde gerne einen Sound per SDL abspielen. Dafür versuchte ich zunächst die Lib zu bauen. Dafür bin ich nach der folgenden Anleitung vorgegangen: http://www.crosscompile.org/static/pages/SDL.html Mein configure-Befehl sah wiefolgt aus: sudo ./configure --host=arm-none-linux-gnueabi --prefix=/opt/external_packages/sdl/1.2.13/compiled/arm-none-linux-gnuea bi Der Befehl schloss auch ohne Probleme ab, ein make und anschließendes make install war möglich. Beim bauen meines Beispielprogrammes schlug das ganze allerdings fehl. Mein Befehl: arm-none-linux-gnueabi-gcc -Wall -O2 -mcpu=cortex-a8 -march=armv7-a -L/opt/external_packages/sdl/1.2.13/compiled/arm-none-linux-gnueabi/lib -Wl,-rpath,/opt/external_packages/sdl/1.2.13/compiled/arm-none-linux-gnu eabi/lib -lSDL -lpthread -I/opt/external_packages/sdl/1.2.13/compiled/arm-none-linux-gnueabi/incl ude/SDL -D_REENTRANT -o tut1 tut1.c Dabei erscheint dann lediglich ein: /opt/external_packages/sdl/1.2.13/compiled/arm-none-linux-gnueabi/lib/li bSDL.so: file not recognized: File format not recognized Ich gehe davon aus, das beim Bauen der Lib der reguläre gcc benutzt wurde, anstelle des eigentlich CrossCompilers arm-none-linux-gnueabi-gcc. Davon lies ich mich an dieser Stelle natürlich nicht entmutigen, kopierte mir die Dateien (Libs und Include) einfach auf mein Host-System. Anschließend konnte ich meine Anwendung problemlos bauen. arm-none-linux-gnueabi-gcc -Wall -O2 -mcpu=cortex-a8 -march=armv7-a -L/home/marcel/nfsmount -Wl,-rpath,/home/marcel/nfsmount -lSDL -I/home/marcel/nfsmount/SDL -D_REENTRANT -o tut1 tut1.c Beim Ausführen auf dem BeagleBoard erscheint aber lediglich ein Knacken auf meinen Lautsprechern, zusammen mit der Ausgabe in der Konsole: ALSA lib pcm.c:7316:(snd_pcm_recover) underrun occurred ALSA lib pcm.c:7316:(snd_pcm_recover) underrun occurred ALSA lib pcm.c:7316:(snd_pcm_recover) underrun occurred ALSA lib pcm.c:7316:(snd_pcm_recover) underrun occurred usw. Verschiedene Wav-Dateien bzw. Konfiguration innerhalb des Programms lösen das Problem nicht. Die gleiche Anwendung, übersetzt auf meinem Hostsystem (Ubuntu, 64Bit) läuft wie gewollt. Weiß wer weiter, wie ich a) die SDL richtig durch den CrossCompiler jage und b) warum das ganze nicht auf dem Target richtig läuft?