“额外';' “在Xcode C ++项目中编译错误

时间:2012-09-12 08:41:50

标签: c++ xcode gcc xcode3.2

我有一个从CMake脚本生成的C ++ Xcode 3项目。它使用了一些以前一直工作的开源头文件,但在这个项目中,当尾部括号有一个不必要的分号时,我得到一个编译错误Extra ';'

if(...)
{
...
};

是否有一些编译器选项会使尾随的分号失误,我可以将其关闭?

以下是其中一个违规文件,请参阅第259行:http://zziplib.svn.sourceforge.net/viewvc/zziplib/trunk/zzip-0/zzip/zzip.h?revision=523&view=markup

2 个答案:

答案 0 :(得分:4)

分号警告来自-pedantic(或-pedantic-errors)选项;我不认为你可以单独禁用它。

我建议删除分号而不是警告。

答案 1 :(得分:2)

您向我们展示的示例代码中的额外分号:

if(...)
{
...
};

完全合法;这是一个空的陈述。

您获得的错误实际上是extern "C"上的额外分号。以下内容显示在zziplib库中的三个源文件中:

#ifdef __cplusplus
extern "C" {
#endif

...

#ifdef __cplusplus
};
#endif

这实际上是语法错误。有些编译器可能不会抱怨它,或者可能只发出警告,但g++ -pedantic-errors这是一个致命的错误。

我向zziplib的维护者报告了这个问题,我刚收到回复:

Thanks for pointing to the problem, fixed in r524 now. I will
probably roll a public release next month (still need to check
the win32 version).

best regards, Guido Draheim

ChangeLog:

2012-09-15  guidod  <guidod@gmx.de>
    * zzip.h, plugin.h: "};" at end of extern-C produces build errors with
       the default --pedantic-errors on newer CMake. Thanks to Keith Thompson
       recognizing it - see http://stackoverflow.com/questions/12384280/