2012-02-19 38 views
0

MinGW的編譯警告我試着用搜索引擎woht沒有運氣,也許有人遇到過這種每個G ++

我用MinGW的在我的Windows 7 32位機(不知道MinGW的版本,但G ++版本爲g ++(GCC)4.6.1)

我獲得每個編譯行以下警告:

command-line:0:16: warning: missing whitespace after the macro name 

例如用於編譯行:

g++ -c "-D__XXX_WINDOWS__;" -g -Wall -o "XXX.o" -Isrc "src/YYY.cpp" 
+0

什麼是命令行? – 2012-02-19 13:59:12

+0

g ++ -c「-D__XXX_WINDOWS__;」 -g -Wall -o「XXX.o」-Isrc「src/YYY.cpp」 <命令行>:0:16:警告:缺少宏名稱後面的空格[缺省爲啓用] – Boaz 2012-02-19 14:03:04

+1

'「-D__XXX_WINDOWS__; 「'真的很奇怪。爲什麼不只是'-D__XXX_WINDOWS__'? – Mat 2012-02-19 14:06:20

回答

4

問題是您的-D交換機末端的;

你給的命令基本上等同於具有:

#define foo; 

在你的來源。這確實將foo定義爲;,但這不是有效的C99(並且可能是打字錯誤)。來自C99草案的第6.10.3/3草案n1124:

在對象宏的定義中,標識符和替換列表之間應該有空格。

所以編譯器會發出警告,或者如果使用-std=c99進行編譯時會發出錯誤。

(您也可以在刪除分號後刪除引號。)