TERMUX- bash: ./a.out: 权限被拒绝

6

为什么我一直收到这个错误?

输入图像描述

>> gcc a.out
>> ./a.out
bash: ./a.out: Permission denied

我甚至尝试过这个

>> chmod +x a.out

但是我仍然不断地收到错误提示。我已经安装了clangtermux-setup-storage软件包。我的文件在主存储器中(而不是SD卡)。

Termux只有在执行a.out文件时才会出现问题。如果我在C程序中犯任何错误,它就无法编译a.c文件。


ls -l a.out 给出什么结果? - Jarvis
运行 ls -l a.out 命令会得到 -rw-rw---- 1 root everybody 8176 Dec 28 19:20 a.out 的结果。看起来没有 x 权限。 - Kangkan Lahkar
3
很可能是由于SD卡上的可执行位被禁用了。 - Arkadiusz Drabczyk
3个回答

6
由于 Android 内部存储被挂载为 noexec,因此您无法在内部存储中执行可执行文件。 请将该二进制文件移动到 Termux 主目录或 $PREFIX 目录下。

cat /proc/mounts | grep storage/emulated | grep noexec,还有很多符号链接 - schemacs

0

如果你刚刚安装了Termux API?

$ pkg install root-repo

在设置中撤销 Termux 应用的权限。

$ termux-setup-storage

然后,塔拉!


0

所以如果你需要运行这些文件,那么你需要运行以下命令: $ ls //查看文件是否在此处。如果不在,则更改目录 $ mv a.out ~ $cd ~ $chmod +x a.out $./a.out


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接