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?
Hallo, Ich würde dir empfehlen ein rootstock (Google mal danach) Image zu erzeugen. Dann kann du entweder direkt auf der Beagleboard Hardware kompilieren, oder per qemu auf dem Host. Das macht das Leben deutlich einfacher als Crosstoolchain einzurichten und zu pflegen. Viel Erfolg, Bernd
Marcel schrieb: > bisschen tiefer in Linux/EmbeddedLinux Marcel schrieb: > /opt/external_packages/sdl/1.2.13/compiled/arm-none-linux... Marcel schrieb: > arm-none-linux-gnueabi-gcc Das mit "none-linux" macht mich etwas stutzig für ein Linuxsystem. Wie hast du denn dein Hello World kompiliert?
Klaus Wachtler schrieb: > Das mit "none-linux" macht mich etwas stutzig für ein Linuxsystem. > Wie hast du denn dein Hello World kompiliert? Das ist lediglich die gcc cross compiling naming convention: cpu-vendor-os-abi Also: Architecture: ARM Vendor: None OS: linux Application Binary interface: gnueabi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.