2 votes

exécuter l'exécutable C termux Android 6

Je viens d'installer termux dans mon téléphone Android 6 et j'ai donné des autorisations de stockage afin de pouvoir lire, écrire ou compiler à partir du terminal dans le dossier /sdcard/myC/ en utilisant clang -o birthday birthday.c -lm .

Cependant, lorsque j'essaie d'exécuter l'exécutable, j'obtiens -bash: ./birthday: Permission denied . J'ai essayé de compiler et d'exécuter à plusieurs endroits, c'est-à-dire /sdcard/data/com.termux et j'ai essayé la commande termux-setup-storage qui garantit que les permissions sont accordées en lecture/écriture. J'ai essayé de chmod le programme également.

Je dois faire quelque chose de mal parce qu'apparemment l'application est vraiment bonne.

1 votes

Vous ne pouvez pas exécuter de programmes à partir de la carte SD, car elle est montée avec l'icône de la carte SD. noexec drapeau. Voir par exemple cette réponse .

4voto

nopeva Points 151

J'ai finalement réussi à le faire fonctionner. Les programmes ne peuvent être exécutés que s'ils sont situés dans le répertoire personnel de termux . C'est-à-dire, exécuter pwd pour savoir où se trouve le répertoire d'origine et y placer les fichiers sources, puis compiler et exécuter, bon appétit !

3 votes

Il n'est pas nécessaire d'y mettre la source, juste le binaire. Bien sûr, vous pouvez simplement copier le binaire après.

1voto

James Points 11

Stockage des fichiers sur /sdcard ne peut pas avoir d'autorisation d'exécution sur Android.

Vous pouvez copier le binaire généré dans /data/data/com.termux/files/home/directory/of/your/choice .

Rendez-le ensuite exécutable en utilisant chmod

Vous pouvez également utiliser cette pour le faire à votre place.

Utilisation :

binrun <your executable> <arguments...>

Ps : c'est moi qui ai créé ce programme

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X