C++;stdlib cdefs.h中的错误? 当我用XCODE编译Mac Loin(10.7)上的C++应用程序时,我一直在出错。 编译器抱怨cdefs.h中的一行(包含在syslog.h中)出现错误预期的非限定id #if defined(__cplusplus) #define __BEGIN_DECLS extern "C" { //<--- Error in this line #define __END_DECLS } #else #define __BEGIN_DECLS #define __END_DECLS #endif #如果已定义(uu cplusplus) #定义uu BEGIN_udecls extern“C”{/

C++;stdlib cdefs.h中的错误? 当我用XCODE编译Mac Loin(10.7)上的C++应用程序时,我一直在出错。 编译器抱怨cdefs.h中的一行(包含在syslog.h中)出现错误预期的非限定id #if defined(__cplusplus) #define __BEGIN_DECLS extern "C" { //<--- Error in this line #define __END_DECLS } #else #define __BEGIN_DECLS #define __END_DECLS #endif #如果已定义(uu cplusplus) #定义uu BEGIN_udecls extern“C”{/,c++,xcode,macos,C++,Xcode,Macos,找到了,伙计们! 在#include之后的一行中有一些奇怪的不可见字符。因此注释掉这一行修复了它,因为该字符也被注释掉了。 结论:您不应该复制粘贴web上的所有内容。这是唯一的错误吗?编译器没有显示任何其他消息吗?(警告或其他信息)?您确定错误在那一行吗?如果是,您确定没有错误(未闭合的大括号、类末尾缺少分号等)在上面您包含文件的地方?cdefs.h是通过我包含的syslog.h包含的。在syslog.h中的\u BEGIN\u DECLS行中有另一个错误-相同的错误消息。如果我在我的项目中注释

找到了,伙计们! 在
#include
之后的一行中有一些奇怪的不可见字符。因此注释掉这一行修复了它,因为该字符也被注释掉了。
结论:您不应该复制粘贴web上的所有内容。

这是唯一的错误吗?编译器没有显示任何其他消息吗?(警告或其他信息)?您确定错误在那一行吗?如果是,您确定没有错误(未闭合的大括号、类末尾缺少分号等)在上面您包含文件的地方?
cdefs.h
是通过我包含的
syslog.h
包含的。在
syslog.h
中的
\u BEGIN\u DECLS
行中有另一个错误-相同的错误消息。如果我在我的项目中注释掉
\include
,一切都正常。编译器是否也指出发生了错误在宏替换过程中,是否有另一行指示器显示导致使用
\define
\BEGIN\DECLS
用法?如果是,这是有价值的上下文。@k_wave
cdefs.h
几乎被任何平台标题间接包含。因此,即使在注释
\include>时,您也可能得到这一行。我在一个包含在多个文件中的头文件中丢失了一个分号…我在另一个头文件之前包含的头文件中丢失了一个分号,而另一个头文件本身启动了整个包含链。这是一条多么不可思议的神秘和毫无帮助的错误消息。