【问题标题】:minGW compilation warning for each g++每个 g++ 的 minGW 编译警告
【发布时间】:2012-03-10 02:59:38
【问题描述】:

我试过谷歌搜索没有运气,也许有人遇到过这个

我在我的 windows 7 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"

【问题讨论】:

  • g++ -c "-D__XXX_WINDOWS__;" -g -Wall -o "XXX.o" -Isrc "src/YYY.cpp" :0:16: 警告:宏名后缺少空格[默认启用]
  • "-D__XXX_WINDOWS__;" 真的很奇怪。为什么不只是-D__XXX_WINDOWS__
  • hmm... SlickEdit 把它放进去... 没注意到。谢谢
  • @Mat - 把它写成答案,这样我就可以接受了
  • 顺便说一句 - 我的错,我把它放在 SlickEdit 窗口中

标签: c++ mingw


【解决方案1】:

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

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

#define foo;

在您的来源。这确实将foo 定义为;,但这不是有效的C99(并且可能是错字)。 §6.10.3/3 来自 C99 草案 n1124:

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

所以编译器会警告你,或者如果你用-std=c99编译会发出错误。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2015-11-03
    相关资源
    最近更新 更多