Sto cercando un semplice cross-compilazione (cc) per un ARM-Cortex-A9: Per semplificare le cose questo è il codice C:Croce Compile helloworld per ARM
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
La compilazione nativa sul braccio funziona bene ed è iniziato con gcc helloworld.c -o helloworld
mentre la cross-compilazione viene avviato con arm-xilinx-linux-gnueabi-gcc helloworld.c -o helloworld_cc
GCC versione:
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 da readelf:
readelf-nativ: OS: Linux, ABI: 2.6.31
readelf-cc: OS: Linux, ABI: 2.6.16
librerie collegate - la la croce compilata è collegata staticamente, quindi non dovrebbe perdere nessun librerie:
[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
Il problema: il programma nativo funziona bene, il cc finisce sempre con:
[email protected]:/tmp# ./helloworld_cc
-bash: ./helloworld_cc: No such file or directory
Eventuali suggerimenti, si spera, ho incluso abbastanza informazioni.
modificare
Linking è statica fa il trucco, ma ora la dimensione del file è enorme (678kB (CC-statico) vs. 4kB (nativo)? Perché è manca librerie, anche se si dice essa non è legata in modo dinamico domanda simile:?. Cross compiling static C hello world for Android using arm-linux-gnueabi-gcc
arm-xilinx-linux-gnueabi-gcc helloworld.c -o helloworld_cc -static
stai cercando corrono ARM-Cortex-A9 binario su Linux x86? –
no un Linaro/Ununtu in esecuzione sul braccio cortex a9 (xillinux su zedboard) http://xillybus.com/xillinux – eactor
ok. quindi controlla l'attributo eseguibile sul tuo binario. –