【发布时间】:2010-05-22 19:16:53
【问题描述】:
由于某种原因,XCode 决定在构建时开始将一个巨大的 Prefix.pch.gch 文件复制到我的应用程序的资源文件夹中。该文件不在 Copy Bundle Resources 构建阶段,我也找不到任何其他应该告诉 XCode 执行此操作的项目设置。有没有人见过这个并且知道发生了什么?
【问题讨论】:
标签: objective-c cocoa xcode macos
由于某种原因,XCode 决定在构建时开始将一个巨大的 Prefix.pch.gch 文件复制到我的应用程序的资源文件夹中。该文件不在 Copy Bundle Resources 构建阶段,我也找不到任何其他应该告诉 XCode 执行此操作的项目设置。有没有人见过这个并且知道发生了什么?
【问题讨论】:
标签: objective-c cocoa xcode macos
我今天遇到了同样症状的问题,原来是因为我的目标 C 文件之一被包含在目标的 Copy Bundle Resources 文件阶段(由于拖放事故,或者xcodeproj 文件在某些时候损坏)。然后 GCC 有助于在目标中包含前缀标头的预编译标头,因为源文件存在依赖关系。
即使文件类型设置为 sourcecode.c.objc,对有问题的源文件执行获取信息也不会显示文件信息对话框中的所有选项卡。
从项目中删除文件并重新添加它可以解决问题。
【讨论】:
您可以尝试在 finder 中对您的 xcode 项目文件执行“显示包内容”,然后在文本编辑器(不是 xcode)中打开 project.pbxproj 文件。
如果您搜索“.pch”和/或“.gch”,您可能会发现一些东西。
【讨论】:
是否有任何复制文件阶段?
Prefix.pch.gch 文件是否在您项目的组树中?检查这一点的最简单方法是选择项目对象,然后在详细信息视图中搜索“gch”。
【讨论】:
我以不同的方式解决了这个问题。首先,我喜欢使用前缀文件,所以我有很多包含标准日志记录、颜色等的内容。
对于前缀文件的每个包含,确保每个包含只处理一次!这可以通过放置:
#ifndef __<Classname>__
#define __<Classname>__
< your original header file here >
#endif
【讨论】:
如果您选择“项目”菜单的“项目”项,然后选择“详细信息”选项卡视图,然后在左侧的“组和文件”列表中选择项目,则右侧视图中列出的文件有复选框?那个复选框被选中了吗?如果是,那么取消选中它。
【讨论】: