2014-10-22 68 views
0

(我不太确定是否需要这个地方,如果可能,请移动到另一个Stack Exchange社区)无法在Raspbian上运行带有Geany或Terminal的C++程序(Debian)

我在Raspberry Pi上学习C++(使用Raspian(Debian),btw),我用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之后。

+0

请显示HelloWorld的文件权限 – frlan 2014-10-22 16:46:54

+0

对我来说g ++总是为文件添加+ x个标志。你不是在使用fat或NTFS分区的USB驱动器吗?运行'mount'命令并检查当前目录所在设备的'noexec'标志。 – Arpegius 2014-10-22 21:52:32

+0

@frlan会做。 – 2014-10-23 04:20:39

回答

0

你的问题似乎不涉及到Geany IDE。所以你需要改变执行文件的权限。请尝试以下命令:chmod 777 your_filename

+0

谢谢,也会试试这个! – 2014-10-23 04:22:11

0

要在Linux上运行文件,用户需要在用户或组上有x。这看起来像是 ---x--x--x或POSIX文件系统上的十六进制0111。所以chmod +x应该在大多数使用例如EXT [2 | 3 | 4]或XFS。所以你的开始是正确的。顺便说一句:通过Geany编译C文件时,它已被设置为可执行文件。

正如你所说的你的USB记忆棒是用FAT32格式化的,这里不支持POSIX的东西,所以chmod不会起任何作用。但是,文件许可权是例如执行某些事情是基于用于安装的umask。在传统的Linux系统上,可以在/etc/fstab中进行配置。使用udev的或别的东西,别的地方也可以配置(读:比它取决于你使用的安装棍子什么的)

另外安装可以设置一个设备作为noexec这几乎是一个好主意设备作为USB棒或未知的CD/DVD。但是,如果在挂载过程中设置了此标志,则无法执行该设备上的文件 - 只允许读取和写入。再次,这可以设置在/etc/fstab或其他地方,这取决于您可能会使用什么。

要检查此操作,请在不带参数的情况下运行mount命令。它会给你一个列表,你的USB设备应该包括在内。