2013-03-20 43 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