2 votos

Ejecutar un ejecutable de C desde la tarjeta SD en Termux

Acabo de instalar termux en mi teléfono Android 6 y he dado permisos de almacenamiento para poder leer, escribir o compilar desde la terminal en la carpeta /sdcard/myC/ usando clang -o birthday birthday.c -lm. Sin embargo, cuando intento ejecutar el ejecutable, obtengo -bash: ./birthday: Permiso denegado.

He intentado compilar y ejecutar en varios lugares, es decir, /sdcard/data/com.termux, y he probado el comando termux-setup-storage que asegura que se concedan los permisos de lectura/escritura. También he intentado hacer chmod en el programa.

Debo estar haciendo algo mal porque aparentemente, la aplicación es realmente buena.

1 votos

No se pueden ejecutar programas desde la tarjeta SD, ya que está montado con la bandera noexec. Ver por ejemplo esta respuesta.

4voto

Freshy Puntos 21

Finalmente lo logré hacer funcionar. Los programas solo pueden ejecutarse si se encuentran en el directorio principal de termux. Es decir, ejecuta pwd para saber dónde está el directorio principal y coloca allí los archivos fuente, luego compila y ejecuta, ¡disfruta!

3 votos

No es necesario poner la fuente allí, solo el binario. Por supuesto, puedes copiar el binario después.

1voto

Sara Puntos 146

Los archivos almacenados en /sdcard no pueden tener permiso de ejecución en Android.

Puedes copiar el binario generado a /data/data/com.termux/files/home/directory/of/your/choice.

Luego hazlo ejecutable usando chmod

O, puedes usar este programa para hacerlo por ti.

Uso:

binrun  

PD: Hice ese programa

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X