Próbuję prosty krzyż kompilacji (cc) dla ARM Cortex-A9: Aby zachować rzeczy proste thats c-Code:Krzyż kompilacji helloworld dla ARM
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
Natywna na kompilacji ramię działa dobrze i jest uruchamiany z gcc helloworld.c -o helloworld
natomiast krzyż kompilacji jest uruchamiany z arm-xilinx-linux-gnueabi-gcc helloworld.c -o helloworld_cc
GCC wersja:
Nativ: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Target: arm-linux-gnueabihf
CC: gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-79) Target: arm-xilinx-linux-gnueabi
ABI z readelf:
readelf-Nativ: OS: Linux, ABI: 2.6.31
readelf-CC: OS: Linux, ABI: 2.6.16
Linked libs - w cross compiled jest statycznie połączony, więc nie powinien przegap żadnych bibliotekami:
[email protected]:/temp# ldd helloworld
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6ed8000)
/lib/ld-linux-armhf.so.3 (0xb6fce000)
[email protected]:/temp# ldd helloworld_cc
not a dynamic executable
Problem: natywny program działa w porządku, cc zawsze kończy się:
[email protected]:/tmp# ./helloworld_cc
-bash: ./helloworld_cc: No such file or directory
Wszelkie wskazówki, mam nadzieję, mam włączone wystarczających informacji.
edit
Powiązanie to statyczne załatwia sprawę, ale teraz wielkość pliku jest ogromny (678kB (CC-static) vs. 4kB (native)? Dlaczego brakuje bibliotekami nawet jeśli mówi to nie jest dynamicznie połączone Podobne pytanie:?. Cross compiling static C hello world for Android using arm-linux-gnueabi-gcc
arm-xilinx-linux-gnueabi-gcc helloworld.c -o helloworld_cc -static
Czy próbujesz uruchomić binarne ARM-CORTEX-A9 na Linuksie x86? –
no to Linaro/Ununtu działa na ramieniu cortex a9 (xillinux na zedboard) http://xillyinux.com/xillinux – eactor
ok. następnie sprawdź plik wykonywalny na twoim pliku binarnym. –