Ios XCode使用未声明的标识符,仅在文件打开时显示

Ios XCode使用未声明的标识符,仅在文件打开时显示,ios,objective-c,xcode,objective-c++,llvm-clang,Ios,Objective C,Xcode,Objective C++,Llvm Clang,当我清理、构建和运行我的XCode项目时,一切都进行得很顺利,但是如果我打开一个调用该函数的文件,就会出现未声明标识符“func()”的用法。这是整个实施过程: 该函数称为: func(); “func()”在.h文件中被清除,如下所示: #if __cplusplus extern "C" { #endif extern void func(); #if __cplusplus } #endif func()是一个cplusplus库 为什么只有当文件打开时才会出现错误,但如果我不打开

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

该函数称为:

func();
“func()”在.h文件中被清除,如下所示:

#if __cplusplus
extern "C" {
#endif

extern void func();

#if __cplusplus
}
#endif
func()是一个cplusplus库


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

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

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

第二个系统错误显示在生成日志中


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

的定义。您的系统有严重问题,或者您弄错了,这就是原因。您使用的是哪个版本的Xcode?我尝试了很多次。。。仅在打开文件时发生。最新版本XCode 6