gcc 无法打开输出文件a.out:权限被拒绝,对简单编译

jqjz2hbq  于 2022-12-29  发布在  其他
关注(0)|答案(7)|浏览(306)

我在vim中写了一些代码,每当我尝试运行代码时,它显示如下:

coolmego@coolmego-PC:~/coolmego/cprograms$ gcc dfs8puzz.c 
/usr/bin/ld: cannot open output file a.out: Permission denied
collect2: ld returned 1 exit status
coolmego@coolmego-PC:~/coolmego/cprograms$ ./a.out
bash: ./a.out: No such file or directory

我该怎么办?

vmjh9lq9

vmjh9lq91#

移动到允许写入的目录。

pokxtpni

pokxtpni2#

这是因为如果您只有写权限,但您不是目录的所有者。
1.用户名:

whoami

1.使自己成为目录及其内容的所有者:

sudo chown -R "$USER:" /path/to/the/directory

1.设置读/写/执行权限

chmod -R 700 /path/to/the/directory

参考https://askubuntu.com/questions/466605/cannot-open-output-file-permission-denied

oymdgrw7

oymdgrw73#

当你运行sudo的时候,你实际上是以root用户的身份运行命令。可能你最后把权限搞混了,这样root用户就拥有了文件。因此当你运行sudo的时候,它只是工作(root用户可以在那些目录中写)。你需要coolmego来拥有那些文件。例如:

sudo chown coolmego /home/coolmego/coolmego/cprograms/
chmod 700 /home/coolmego/coolmego/cprograms/
yptwkmov

yptwkmov4#

删除/etc/fstab中的user选项。除非在fstab中明确指定了exec,否则fstab中包含user的任何内容都会自动挂载noexec。

s2j5cfk0

s2j5cfk05#

尝试对您要获取输出的目标目录授予读写权限。如果您使用的是个人系统,则可以执行“sudo chmod 777“

h43kikqp

h43kikqp6#

我也有同样的问题,1个小时后我发现这是我的杀毒软件,我关闭了它,一切正常。

fcwjkofz

fcwjkofz7#

尝试chmod -R 777 ~/coolmego/cprograms

相关问题