我正在尝试编译我在闪存驱动器上编写的 C++ 程序。我现在在终端中,并且当前位于我想要编译的正确文件(在我的闪存驱动器中)内。但是,当我运行以下命令时:
$ g++ -std=c++11 -main.cpp -o main
$ ./main
我收到此错误:bash: ./main: Permission denied
通常,当我在 OS Documents 文件夹中运行这些命令时,不会出现任何问题。为什么会出现此错误?
谢谢。
答案1
chmod u+x program_name
.然后执行它。
如果不起作用,请将程序从 USB 设备复制到系统上的本机卷。然后chmod u+x program_name
在本地复制并执行该程序。
Unix 和类 Unix 系统通常不会执行程序,除非该程序被标记为具有执行权限。您将文件从一个系统复制到另一个系统(或安装外部卷)的方式可能已关闭执行权限(作为安全功能)。该命令chmod u+x name
为拥有该文件的用户添加了执行它的权限。
该命令仅更改与文件关联的权限;它不会更改与整个卷关联的安全控制。如果卷上的安全控制干扰了执行,那么您可以重新安装卷并使用选项允许执行。但是,将文件复制到本地卷可能是一种更快捷、更简单的解决方案。