Hey,
mein Ziel ist es ein C-Programm auf dem Beagleboard laufen zu lassen.
Host: Ubuntu, welches als VirtualMachine läuft
Target: Beagleboard Arm7 Linux Angström
Crosscompiler: CodeSourcery Sourcery_G++_Lite
Es gibt zwei Möglichkeiten das C-File zu compilieren/linken:
1) auf dem Host "normal" compilieren/linken mit:
1 | arm-none-linux-gnueabi-gcc -o main main.c -mthumb -march=armv7-a -v
|
und erst auf dem Target mit
1 | /home/admin/beagleboard/lib/ld-linux.so.3 --library-path /home/admin/beagleboard/lib:/home/admin/beagleboard/usr/lib /home/admin/code/main
|
den Ort der Libraries angeben.
(main.c ist der Code; '/home/admin/beagleboard/' ist die Sysroot)
Das funktioniert auch.
Die zweite Möglichkeit:
auf dem Host beim Compilieren/Linken gleich den Pfad zu den Libraries
auf dem Target angeben. Das mache ich folgendermaßen (nach manual):
1 | arm-none-linux-gnueabi-gcc -o main main.c -mthumb -march=armv7-a -Wl,-rpath=/home/admin/beagleboard/lib:/home/admin/beagleboard/usr/lib -Wl,--dynamic-linker=/home/admin/beagleboard/lib/ld-linux.so.3 -v
|
wenn ich dann aber auf dem Target > main eingebe kommt:
Hat jemand eine Idee woran das liegt?
Sind die Befehle richtig?
Grüße
Michael
Ps: Wie kann ich es umgehen nach jedem Start:
1 | PATH=$HOME/CodeSourcery/Sourcery_G++_Lite/bin:$PATH
|
2 | export PATH
|
eingeben zu müssen?
Habe die Zeile schon am Ende von .profile bzw. .bashrc eingegeben.
Funktioniert nicht.