2013-10-26 153 views
4

我使用 「代碼::塊」 在Windows 7上我的C語言代碼的編譯問題是:MinGW的不喜歡評論

//whatever 
int main(void){return 0;} 
//this is blank line 

MinGW的命令行是:

gcc.exe -Wall -g -ansi -c C:...\Test\main.c -o obj\Debug\main.o

如果我嘗試編譯,我得到的錯誤:

C:\...\Test\main.c|1|error: expected identifier or '(' before '/' token 

(我想在這裏張貼圖片,但沒有足夠的聲譽...)

我的源文件中只有3行代碼。 (最後只包含\0,但我不知道,如何添加一個空行)。我使用code::blocks作爲IDE。我用notepad++來搜索不可打印的字符,但沒有有意義的結果。我使用MinGW編譯器,它可以通過code :: blocks捆綁下載。我更正了"toolchain executables",編譯器一直運行良好。

這不是我第一次有這個問題。我記得之前在另一臺電腦上使用過,並通過重新輸入整個源文件來解決它(我不想每次都這樣做)。

被激怒的錯誤只是註釋和一會兒取消註釋代碼的方式(我嘗試了一些事情,並評論之前的測試距離)。而出乎意料的是,這個錯誤出現了。

對不起,如果我的語法是壞的。英語不是我的母語。

我明白任何給定的幫助! 由於提前, 尼爾斯

+0

「最後只包含'\ 0'」 - 你確定嗎?如果它真的是NUL角色,那是非法的。你的意思是換行嗎('\ n')? – 2013-10-26 10:46:51

回答

4

刪除編譯器選項-ansi

ANSI C不理解//

gcc documentation

3.4 Options Controlling C Dialect

[...]

-ansi

In C mode, this is equivalent to -std=c90. In C++ mode, it is equivalent to -std=c++98.

[...] For the C compiler, it disables recognition of C++ style ‘//’ comments [...]

+0

好吧,剛剛想出了同樣的想法;)... –

+0

這樣做。非常感謝! –

+0

雖然我不久前在printf 64bit intmax_t中添加了%j ... –

0

對於編譯C使用

/* C-style comments! 
*/ 
+0

@ H2CO3 c99是默認選項,可以在項目設置中設置不同的項目。 –

+0

耶,但很難知道OP是否沒有發佈他的命令行(他原本沒有)。 – 2013-10-26 11:03:46

3

代碼塊中做到這一點

確保高亮顯示的選項沒有被選中(這是與上面相同ANS移除-ansi選項。)

Settings->compiler

Settings->compiler

+2

+1爲無責任的圈子 – 2013-10-26 11:04:36