he preparado un código C muestra abajo para hacer que se ejecute en el sistema operativo Android siguiendo estos procedimientos,¿Cómo se cruzan los archivos ejecutables ELF para Android?
/*test.c file*/
#include <stdio.h>
int
main(int argc, char **argv)
{
printf("Android Test Application.\n");
return 0;
}
$ brazo-no-Linux-gnueabi-gcc -o test.c prueba -Wall
He copiado el archivo binario --test-- en el directorio del dispositivo de destino "/ system/bin".
Cuando intento hacer carrera binaria-cruz compilada en el sistema de destino, que estoy recibiendo este error
$ PWD
/system/bin
$ ./test
bash: ./test: Ningún archivo o directorio
$ ls -al | grep prueba
-rwxr-xr-x 1 0 0 8384 2011-12-22 15:26 prueba
aunque el archivo binario --test-- ya está en el directorio "/ system/bin" .
Mi compilador cruzado es
$ brazo-ninguno-linux-gcc-gnueabi --version
brazo-ninguno-linux-gcc-gnueabi (Sourcery G ++ Lite 2009q1-203) 4,3 .3 Copyright (C) 2008 Free Software Foundation, Inc. Este es el software gratuito; ver la fuente de las condiciones de copia. No hay garantía de ; ni siquiera para COMERCIALIZACIÓN o IDONEIDAD PARA UN PROPÓSITO EN PARTICULAR .
¿Por qué me aparece este error?
bash: ./test: No existe el fichero o directorio
_could_ ser una falta/cargador dinámico mal vinculado o algo así. Averigüe qué es el cargador con 'readelf'. Pruebe 'ldd./Test' en el dispositivo. Pruebe también el enlace estático del exe para ver si al menos funciona. – Mat
Ejecutando 'ls -al | grep date' en mi teléfono produce 'lrwxrwxrwx' como los permisos. Tal vez es un problema de permisos? –
¿Cómo puedo detectar mi cargador dinámico actual? ¿Puedo usar la utilidad readelf para aprender esto? – albin