makefile权限被拒绝

时间:2012-11-28 02:25:38

标签: makefile permission-denied

我正在尝试制作一个C ++程序,它将找到迷宫中最短的路线。我现在正努力让我的makefile正常工作。目前,我的makefile包含以下内容:

mazeIO : mazeIO.cpp maze.h
    g++ -g -Wall mazeIO.cpp maze.h -o mazeIO

mazeIO.cpp和maze.h是我在项目中唯一拥有的两个文件。在命令行中我输入

make -f Makefile

它编译得很好。然后我正在打字

./mazeIO maze.txt

maze.txt是我试图导航的迷宫输入。 在我输入后,我收到以下错误:

bash: ./mazeIO: Permission denied

我不明白为什么。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

由于存在执行(x)标志,可执行文件在Linux中称为可执行文件。您的“可执行文件”没有它 - 它只具有读取(r)和写入(w)权限。您可以从可执行文件中删除权限(例如,使用chmod 600 mazeIO),或者您的umask很奇怪。 umask控制新文件的默认用户权限,如果您从默认文件修改它,它可能会造成严重破坏。对于大多数系统,默认的umask是0022,我建议将它留在那里,除非你知道会发生什么。我没有任何其他想法为什么你可能会错过exec位。

答案 1 :(得分:2)

这很简单。它需要可执行权限。

chmod + x mazeIO

如果需要由其他用户执行,您也可以使用chmod 如果需要由其他用户执行,那么chmod将为您提供所需的数值。警惕提供完整的可执行,读取和写入权限(chmod 777)

chmod 600不会使其可执行。