stdlib cdefs.h中的C++错误?

问题描述:

我试图用XCode在Mac Lion(10.7)上编译我的C++应用程序时出现错误。 编译器抱怨cdefs.h(包括syslog.h)中的一行,并显示错误expected unqualified-idstdlib cdefs.h中的C++错误?

#if defined(__cplusplus) 
#define __BEGIN_DECLS extern "C" { //<--- Error in this line 
#define __END_DECLS } 
#else 
#define __BEGIN_DECLS 
#define __END_DECLS 
#endif 

这是怎么回事?

+0

它是唯一的错误?编译器不显示任何其他消息吗? (警告或其他)? – 2012-01-12 18:50:56

+2

你确定错误在那条线吗?如果是这样,你确定没有错误(大括号没有关闭,在类尾部缺少分号等)_上面_你包括文件吗? – 2012-01-12 18:51:25

+0

'cdefs.h'通过包含的'syslog.h'包含在内。 '__BEGIN_DECLS'行处的'syslog.h'存在另一个错误 - 相同的错误消息。如果我在我的项目中注释掉'#include ',一切都很好。 – gorootde 2012-01-12 18:55:32

找到它们了! #include <syslog.h>后面有一些奇怪的隐形字符。所以注释掉这条线就解决了这个问题,因为这个字符也被注释掉了。 结论:你不应该复制粘贴在网上找到的所有东西。

+0

我错过了包含在多个文件中的头文件的分号... – Paschalis 2015-08-19 10:07:23