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

时间:2011-03-15 14:02:00

标签: gcc permissions

我在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

我该怎么办?

7 个答案:

答案 0 :(得分:7)

移动到允许写入的目录。

答案 1 :(得分:1)

这是因为如果您仅具有写权限,但您不是目录的所有者。

  1. 检查您的用户名:

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

     sudo chown -R "$USER:" /path/to/the/directory
    
  3. 设置读取/写入/执行权限

    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