无法在 Raspbian 上运行 Geany 或 Terminal C++程序
Can't run C++ program with Geany or Terminal on Raspbian (Debian)
(我不太确定这是否是问这个问题的地方,如果需要,请转移到另一个Stack Exchange社区-如果可能的话)
我正在我的Raspberry Pi上学习C++(使用Raspian(Debian),顺便说一句),我用Geany IDE创建了一个简单的Hello World程序。我编译、构建程序,然后运行它。然而,我得到了一个错误:
./geany_run_script.sh: 5: ./geany_run_script.sh: ./HelloWorld: Permission denied
------------------
(program exited with code: 126)
Press return to continue
编译命令是g++ -c "%f"
,构建命令是g++ -o "%e" "%f"
。如果您觉得有帮助,文件类型为.cxx
。
出于方便,我想使用Geany进行跑步。不幸的是,即使在使用了chmod +x
之后,我也无法以超级用户的身份在终端上运行它。
您的问题似乎与Geany IDE无关。所以您需要更改已执行文件的权限。请尝试以下命令:chmod 777your_filename
要在Linux上运行文件,用户需要在用户或组上拥有x
。这看起来像---x--x--x
或POSIX文件系统上的十六进制0111。因此chmod +x
应该在大多数使用EXT[2|3|4]或XFS的系统上工作。所以你的开始是正确的。BTW:当通过Geany编译C文件时,它已经被设置为可执行文件。
正如你提到的,你的U盘是用FAT32格式化的,它不支持这里的POSIX,所以chmod不会起任何作用。然而,文件权限是例如执行某些内容的权限是基于用于装载的umask。在传统的Linux系统上,这可以在/etc/fstab
中进行配置。使用udev或其他东西,也可以在其他地方进行配置(阅读:根据情况,您正在使用什么来安装棒)
此外,mount可以将设备设置为noexec
,这对于U盘或未知CD/DVD等设备来说是个不错的主意。但是,如果在装载过程中设置了此标志,则该设备上的文件将无法执行——只允许读取和写入。同样,这可以在/etc/fstab
上设置,也可以在其他地方设置,具体取决于您可能使用的内容。
要检查此情况,请在不带和参数的情况下运行mount命令。它会给你一个清单,你的USB设备应该包括在哪里。