XCode 使用未声明的标识符,仅在打开文件时出现

XCode use of undeclared identifier, only appears if the file is opened

当我清理、构建和 运行 我的 XCode 项目时一切顺利,但如果我打开一个调用该函数的文件,则会出现使用未声明的标识符 'func()'。这是整个实现:

函数调用:

func();

并且 'func()' 在 .h 文件中被清除,如下所示:

#if __cplusplus
extern "C" {
#endif

extern void func();

#if __cplusplus
}
#endif

实现的 func() 是一个 cplusplus 库。

为什么只有文件打开时才会出现错误,但如果我不打开它,它 运行 并且工作正常?

Xcode 有两种生成错误消息的方法。通常这两个都会生成相同的消息,因此您不会检测到有两个系统。

第一个系统是语法着色和自动完成的编辑器。它还会在您写入错误后几乎立即显示错误消息。

第二个系统是构建日志中显示的错误。

我怀疑你的项目有一个复杂的包含设置。这可以防止第一个系统找到要包含的正确文件,因此它找不到 func().

的定义