XCode预编译pch两次; 第二次用错误的语言

Ada*_*ume 1 xcode objective-c pch

我在XCode中有一个Objective C项目.构建时,XCode会对我的前缀PCH文件进行两次预编译.第一次,它使用参数-x objective-c-header,它工作正常.第二次,它使用-x c-header,并且失败(由于包含Objective C代码的文件).

我有另一个设置相同的项目,但它构建良好.(PCH仅预编译一次,目标C.)我并排比较了两个项目的构建设置,没有任何相关的不同.我并排比较了目标的构建设置,并且没有相关的差异.

我试着清理所有目标并重建,但没有运气.我试过重启XCode,但没有运气.我为我的项目文件夹c-header插入了grepped ,但它只出现在构建日志中.

可能是什么导致了这个?

bbu*_*bum 7

PCH文件正在重建多次,因为项目中有多种语言; 一次使用objective-c编译器,一次使用直接C文件,因此您在OBJC #ifdef 之外使用了Objective-C代码,这导致直接C编译器提起它的午餐.

如果你有一个C++文件,你最终可能会得到3个PCH编译(IIRC - 自从我搞砸了以来已经有一段时间了).