我在Xcode中有一个目标C项目。构建时,Xcode将我的前缀PCH文件预先编译两次。第一次使用参数 -x objective-c-header, ,它可以正常工作。第二次使用 -x c-header, ,并且失败(由于包含目标C代码的文件)。

我还有另一个设置相同的项目,但是它可以很好地建立。 (PCH仅预先编译一次。我比较了目标并排的构建设置,又没有相关差异。

我尝试清洁所有目标和重建,但没有运气。我尝试重新启动Xcode,但没有运气。我把我的项目文件夹盖上了 c-header, ,但它仅显示在构建日志中。

是什么造成这一点?

有帮助吗?

解决方案 2

我讨厌回答自己的问题,但我弄清楚了。我禁用预编译前缀标头,看看这是否会让我继续工作。该构建仍然存在相同的错误失败,但是当包括我忘记的项目中的.c文件中的文件时,它失败了。显然,此.C文件的存在是该项目与另一个项目之间的区别。现在我知道发生了什么,我将代码移到了 #ifdef __OBJC__, ,一切似乎都很好。

其他提示

由于项目中有多种语言,因此PCH文件已被多次重建。一旦使用Objective-C编译器,一次与直接C文件一起使用,因此您的Objective-C代码在此外 OBJC #ifdef和这导致直c编译器将其午餐起来。

如果您有一个C ++文件,则可能最终会有3个PCH汇编(IIRC-自从我遇到的时间以来已经有一段时间)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top