我在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
我该怎么办?
答案 0 :(得分:7)
移动到允许写入的目录。
答案 1 :(得分:1)
这是因为如果您仅具有写权限,但您不是目录的所有者。
检查您的用户名:
whoami
使自己成为目录及其内容的所有者:
sudo chown -R "$USER:" /path/to/the/directory
设置读取/写入/执行权限
chmod -R 700 /path/to/the/directory
推荐https://askubuntu.com/questions/466605/cannot-open-output-file-permission-denied
答案 2 :(得分:0)
运行sudo时,实际上是以root用户身份运行命令。可能你最终弄乱了权限,以便root拥有文件。因此,当你运行sudo时,它只是工作(root可以在这些目录中写入)。你需要coolmego来拥有这些文件。例如:
sudo chown coolmego /home/coolmego/coolmego/cprograms/
chmod 700 /home/coolmego/coolmego/cprograms/
答案 3 :(得分:0)
删除/ etc / fstab中的选项用户。除非在fstab中明确给出了exec,否则fstab中的任何用户都会自动挂载noexec。
答案 4 :(得分:0)
尝试对要获取输出的目标目录授予读写权限。如果您使用的是个人系统,则可以执行“ sudo chmod 777”
答案 5 :(得分:0)
这可能是因为您在尝试构建程序时在另一个终端上运行程序。
我知道我快迟了9年。但是当我遇到同样的问题并在最近进行搜索时,我在网络上找不到解决方案。
这对于仍在搜索此错误的其他人可能有用。
答案 6 :(得分:-4)
尝试chmod -R 777 ~/coolmego/cprograms