2012-10-11 39 views
5

我想運行一個Hello World程序,但我得到的錯誤初級:語法錯誤之前INT主要()

./ex1.c: line 3: syntax error near unexpected token `(` 
./ex1.c: line 3: `int main (int argc, char *argv[])' 

./ex1.c: 3: ./ex1.c: Syntax error: "(" unexpected 

./ex1.c:3: unknown file attribute: i 
./ex1.c:4: parse error near `}' 

奇怪的是我之前運行過這個程序,沒有問題。

不知道這些問題是否相關,但是在安裝Valgrind在Learn C The Hard Way中運行練習4後發生問題。我收到一個錯誤,表示拒絕了我使用chmod +x修復的權限。然後我所有的.c文件需要他們以前沒有的權限。然後我做了chmod -R 0777這個包含我所有.c練習文件的目錄。所以權限問題是固定的,但是上面的錯誤開始了。他們可能完成無關,但想包括以防萬一。

+7

如果您有*代碼*的問題,請發佈。否則,你如何指望我們幫助你?我可以告訴你的是,你有一個意想不到的'('in line 3. –

+0

但是從這個我可以告訴他正在運行'.c'文件,並且shell正在抱怨C語法...... – nneonneo

+1

你*不希望你的'* .c'文件擁有執行權限,並且你很少希望*任何*擁有777權限(這爲系統上的每個人提供了讀寫執行權限) –

回答

7

您不能運行 a .c文件只是通過使用./ex1.c;你必須先將編譯成它變成一個可運行的程序。

假設您有一臺Linux/OS X機器,請使用gcc -Wall ex1.c -o ex1對其進行編譯(或者更簡單地說,就是make ex1)。然後你可以運行程序./ex1

+2

我意識到我在做什麼錯了,我用過make但仍然離開。 c after ./ex1。Thanks! – MParker

+1

'gcc -Wall ...' - always - thanks。 –

+0

@PaulR:是的,很好的電話 – nneonneo

-4

在使用make「your program name」(例如make mario)編譯程序後,只需使用./「您的程序名」(本例爲./mario)即可。運行程序時不要添加.c。

+0

這些是使用Makefiles的說明,它可能與語法錯誤@MParker了。 – Jonatan

+2

_3年前給出了類似的答案。 –

相關問題