use*_*370 6 makefile permission-denied
我正在尝试编写一个 C++ 程序,它可以找到走出迷宫的最短路线。不过,我现在正在努力让我的 makefile 正常工作。目前,我的 makefile 包含以下内容:
mazeIO : mazeIO.cpp maze.h
g++ -g -Wall mazeIO.cpp maze.h -o mazeIO
Run Code Online (Sandbox Code Playgroud)
mazeIO.cpp 和 maze.h 是我在项目中仅有的两个文件。在命令行中我输入
make -f Makefile
Run Code Online (Sandbox Code Playgroud)
它编译得很好。然后我正在打字
./mazeIO maze.txt
Run Code Online (Sandbox Code Playgroud)
maze.txt 是我尝试导航的迷宫输入。输入此内容后,我收到以下错误:
bash: ./mazeIO: Permission denied
Run Code Online (Sandbox Code Playgroud)
我不懂为什么。有什么建议么?
小智 6
这很简单。它需要可执行权限。
chmod +x mazeIO
Run Code Online (Sandbox Code Playgroud)
如果需要由其他用户执行,也可以使用 chmod。
man chmod如果需要由其他用户执行,将为您提供所需的数值。谨慎授予完整的可执行、读取和写入权限 ( chmod 777)
chmod 600不会使其可执行。
由于存在execute ( x) 标志,可执行文件在Linux 中被称为可执行文件。您的“可执行文件”没有它 - 它只有读(r)和写(w)权限。要么您从可执行文件中删除权限(例如,使用chmod 600 mazeIO),要么您的 umask 很奇怪。umask 控制新文件的默认用户权限,如果您修改了默认值,可能会造成严重破坏。默认的 umask 适用0022于大多数系统,我建议将其保留在那里,除非您知道会发生什么。我不知道为什么你可能会错过 exec 位。
| 归档时间: |
|
| 查看次数: |
45071 次 |
| 最近记录: |