首先,AU 上有很多这样的问题。但是都没有解决我的问题。
我已经使用编译了我的 C 源代码cc test.c
,并且它确实生成了a.out
文件。
但是当我运行它时出现这个错误 -
bash: ./a.out: Permission denied
我的源代码不在主目录中,而是在不同的 FAT-32 分区上,因此我使用以下命令安装了代码所在的驱动器 -
$ udisks --mount /dev/sda7 --mount-options umask=022
Mounted /org/freedesktop/UDisks/devices/sda7 at /media/48E9-FD53
$ cd /media/48E9-FD53/C
然后我使用编译我的代码cc
我也尝试过gcc
。但仍然出现相同的错误。
然后我做了 - chmod +x a.out
,问题依然存在。对于 ( chmod 755 a.out
) 和 也是如此chmod u+x a.out
。
我也尝试使用 编译和执行该程序sudo
。
我也尝试过—— sudo chown sannidhya:sannidhya a.out
。
我尝试了在 AU 上找到的所有东西,但仍然无法让它发挥作用。
我如何运行.out
文件(不将其移动到主目录)?
笔记- 我正在使用 Ubuntu 12.04 LTS。
但奇怪的事情即使在运行之后chmod +x a.out
,在运行中 - ls -l a.out
,我得到 -
-rw-r--r-- 1
a.out
当我检查下的属性时权限选项卡中,只有 2 种可用模式Read only
和Read and Write
。
答案1
如果您将二进制文件从 FAT32 文件系统复制到您的本机 ext* 文件系统,则在授予正确的权限 (+x) 时,该二进制文件应该会运行。
文件系统可能在安装时没有执行权限。因此,除了 chmod 之外,您还需要检查文件系统的安装选项。