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

Posted

技术标签:

【中文标题】XCode 使用未声明的标识符,仅在打开文件时出现【英文标题】:XCode use of undeclared identifier, only appears if the file is opened 【发布时间】:2015-09-03 10:36:24 【问题描述】:

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

函数被调用:

func();

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

#if __cplusplus
extern "C" 
#endif

extern void func();

#if __cplusplus

#endif

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

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

【问题讨论】:

您的系统出现严重问题,或者您误认为这是原因。 您使用的是哪个版本的 Xcode?​​span> 我尝试了很多次......只有在打开文件时才会发生。 最新版 XCode 6 【参考方案1】:

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

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

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

我怀疑您的项目有一个复杂的包含设置。这会阻止第一个系统找到要包含的正确文件,因此它找不到func() 的定义。

【讨论】:

以上是关于XCode 使用未声明的标识符,仅在打开文件时出现的主要内容,如果未能解决你的问题,请参考以下文章

仅在分析应用程序时使用未声明的标识符

发布 iOS 构建错误 - 使用未声明的标识符“Twitter”

重命名项目/工作区后,出现多个“未声明的标识符”错误——但构建良好

未捕获的语法错误:在 JS 文件中导入 JavaScript 时出现意外标识符

Xcode 5 您的二进制文件未针对 iPhone 5 进行优化验证时出现错误

仅在模拟器 iPhone6 中首次启动时出现位置权限问题 - XCode 9.4.1