Ho preparato un esempio di codice C al di sotto per farlo girare sul sistema operativo Android seguendo queste procedure,Come si esegue la cross compilazione di eseguibili ELF per Android?
/*test.c file*/
#include <stdio.h>
int
main(int argc, char **argv)
{
printf("Android Test Application.\n");
return 0;
}
$ braccio-nessuno-linux-gcc-gnueabi prova -o test.c -Wall
Ho copiato il file binario --test-- nella directory di destinazione "/ system/bin".
Quando tento di fare run binario cross-compilato nel sistema di destinazione, sto ottenendo questo errore
$ PWD
/system/bin
$ ./test
bash: ./test: Nessun file o directory
$ ls -al | Test grep
-rwxr-xr-x 1 0 0 8384 2011-12-22 15:26 prova
anche se il file binario --test-- è già nella directory "/ system/bin" .
mio cross-compilatore è
$ braccio-nessuno-linux-gnueabi-gcc version
braccio-nessuno-linux-gnueabi-gcc (Sourcery G ++ Lite 2009q1-203) 4.3 .3 Copyright (C) 2008 Free Software Foundation, Inc. Software gratuito ; vedere la fonte per le condizioni di copia. Non c'è la garanzia ; nemmeno per COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO.
Perché ho ricevuto questo errore?
bash: ./test: No such file or directory
_could_ essere un mancante/caricatore dinamico collegato male o qualcosa del genere. Scopri cosa è il loader con 'readelf'. Prova 'ldd./Test' sul dispositivo. Prova anche a collegare in modo statico l'exe per vedere se almeno funziona. – Mat
In esecuzione 'ls -al | grep date' sul mio telefono restituisce 'lrwxrwxrwx' come permessi. Forse è un problema con le autorizzazioni? –
Come posso rilevare il mio caricatore dinamico corrente? Posso usare l'utility readelf per imparare questo? – albin