2013-03-20 118 views
1

于是,我试图运行一个程序我在C写在我的三星Galaxy Tab 2(虚拟机)不能用gcc编译后运行程序

它编译没有问题,厂名命令运行平稳,但程序本身不运行

壳$ ./prot

这给了我下面的错误:

bash: ./prot: Permission Denied 

这些都是对文件的访问权限:

-rw-rw-r-- 1 root sdcard-rw 8609 Mar 20 16:23 prot 

这是怎么回事,我该如何克服这个小问题?

PS .:我使用的是Ubuntu,该程序在我的Mac上编译和运行良好。

编辑:看到teppic的答案,它解决了我的问题。

+0

您需要执行'x'权限。 – Nick 2013-03-20 16:32:00

+0

是啊,看起来你没有任何人的X权限执行 – 2013-03-20 16:36:48

回答

3

这很可能是你的SD卡安装与noexec,这会阻止您执行上的任何文件。如果您查看/etc/fstab,并且有SD卡的条目,请取出此选项。通常也可以用mount -o remount,execexec选项重新挂载。

否则,您可以将其复制到允许执行文件的地方(例如/tmp)。

+0

你说得对!非常感谢你和其他试图帮助我的人! – Souza 2013-03-20 18:00:02

+0

@Souza - 很高兴帮助。 – teppic 2013-03-20 19:24:20

1

您必须拥有执行权限,即i。即x位设置。尝试

chmod +x prot 

要解决它。

+0

试过了,权限没有改变,仍然是一样的错误。 尝试过这个命令,并且在之前使用sudo。没有。 – Souza 2013-03-20 16:35:14

+1

@Souza然后你错过了别的东西。你确定你是'chmod'你试图运行的文件吗? – 2013-03-20 16:35:49

+0

我认为你需要chown和*然后* chmod。我也有chmod拒绝+ x参数,但在某些系统上接受像777这样的数字。 – 2013-03-20 16:49:58

0

也许你需要改变它管理权限,请尝试:

$> sudo的搭配chmod 777 PROT

+0

之前尝试过,是我的第一个猜测。不起作用。 – Souza 2013-03-20 17:38:04