0 votos

Cxxdroid puede ejecutar binarios c++ en cualquier directorio de almacenamiento interno, pero Termux no puede

Estaba probando algún ejecutable c++ en mi viejo smartphone (Android 8, sin Root). Aquí está la descripción del problema:

Tengo tanto Termux como Cxxdroid instalados en ese teléfono. Y en termux tengo instalado clang.

Entremos en Termux.

cd /storage/emulated/0/c++    # current dir is now c++ which sits in the internal storage
ls    # this prints 'hello.cpp', a simple hello world program. let's compile it.
clang++ hello.cxx -o hello
ls    # this prints two files now, hello and hello.cxx. let's execute hello.
./hello    # prints: bash: ./hello: Permission denied. let's grant permission.
chmod +x hello
./hello    # prints: bash: ./hello: Permission denied

Como puedes ver, no hay manera de que pueda ejecutar hello en el directorio c++. Sé que si muevo hola en $HOME y lo ejecuto, funcionaría de inmediato. Pero ese no es el caso.

Ahora, entremos en Cxxdroid. Entremos en 'Terminal' desde el menú de la izquierda. Vamos a ejecutar nuestro binario hola.

cd /storage/emulated/0/c++
ls    # contains two files. hello.cxx and hello (which is the binary generated from Termux clang). let's run it.
./hello    # prints 'Hello World'

¿Lo ves? El mismo binario no se ejecuta en Termux pero se ejecuta enseguida en Cxxdroid. ¿Por qué? ¿Qué técnica está usando Cxxdroid bajo el capó? El permiso del binario hello tanto para Termux como para Cxxdroid es:

ls -l hello    # prints: -rw-rw---- 1 root everybody 115588 Apr 25 00:32 hello

Se agradece cualquier ayuda.

0voto

halloweeks Puntos 1

Necesitas acceso Root. sin Root puedes probar esto

cp /storage/emulated/0/c++/hello $HOME
chmod +x $HOME/hello
$HOME/hello

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