每个g++的minGW编译警告

minGW compilation warning for each g++

本文关键字:编译 警告 minGW g++ 每个      更新时间:2023-10-16

我试着在谷歌上搜索,但运气不好,也许有人遇到了这个

我在我的Windows7 32位机器上使用MinGW(不确定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"

问题出在-D开关末端的;

你给出的命令本质上等同于拥有:

#define foo;

位于您来源的。这确实定义了foo;,但这不是有效的C99(可能是打字错误)。C99草案n1124中的§6.10.3/3:

在类对象宏的定义中,标识符和替换列表之间应留有空白。

因此,如果使用-std=c99进行编译,编译器会发出警告,或者发出错误。

(删除分号后,您可能也可以删除引号。)