无法在 Raspbian 上运行 Geany 或 Terminal C++程序

Can't run C++ program with Geany or Terminal on Raspbian (Debian)

本文关键字:Terminal C++ 程序 Geany 运行 Raspbian      更新时间:2023-10-16

(我不太确定这是否是问这个问题的地方,如果需要,请转移到另一个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设备应该包括在哪里。