什么是Xcode中的Prefix.pch文件?

许多开发人员正在向Prefix.pch中添加各种方便的macros。 但我的问题是什么Prefix.pch文件。

  • 如果我从我的Xcode删除Prefix.pch文件,那么我的应用程序将运行? 或者会显示任何错误? 还是会在构build过程中崩溃?

  • 我如何运行我的应用程序没有Prefix.pch文件

预编译头文件

这是什么?

Prefix.pch是一个预编译的头文件。 编译预编译头文件是为了加快编译速度 。 这些文件不是一遍又一遍parsing相同的头文件,而是提前一次parsing。

Xcode中

在Xcode中,您需要在“前缀头文件”中添加所需的头文件导入,并启用Precompile Prefix Header以便进行预编译。 但是,前缀头文件的想法与预编译不同。

每个源文件的开头都隐含有一个前缀头文件。 这就像每个源文件添加

 #import "Prefix.pch" 

在文件的顶部,在其他之前。

删除它。

您可以删除预编译头。 这个问题已经在我下面链接的线程中得到了解答。 它包含您需要的所有信息以及有用的评论。

是否可以从Xcode项目中删除Prefix.pch文件?

什么是Prefix.pch文件?

.pch是一个预编译头文件。

在C和C ++编程语言中,头文件是一个文件,其文本可能被C预处理程序自动包含在另一个源文件中,通常通过使用源文件中的编译器指令来指定。

前缀头文件被编译并存储在caching中,然后在编译期间自动包含在每个文件中。 这可以加快编译速度,并且允许您在不使用导入语句的情况下包含文件。 他们不是必需的,而且每当你改变它们的时候,实际上编译都很慢。

是的,您可以编译并运行没有.pch文件的项目

在Xcode中,转到您的目标的构build设置(Command-Option-E,构build选项卡),并取消选中预编译前缀头(GCC_PRECOMPILE_PREFIX_HEADER)。 如果您愿意,也可以删除“前缀头”设置的值。

还要注意的是,

不要把macros放在a.pch文件中! 根据定义,.pch文件是项目特定的预编译头文件。 它真的不应该超出项目的上下文,它不应该包含任何东西,但#include和#imports。

如果你有一些macros,而且你想在头文件之间共享,那么把它们放在它们自己的头文件Common.h中或者其他的文件中,然后#include在.pch的开头

前缀头文件被编译并存储在caching中,然后在编译期间自动包含在每个文件中。 这可以加快编译速度,并且允许您在不使用导入语句的情况下包含文件。 它们不是必需的,每当你改变它们时,实际上编译速度都很慢。

通常.pch文件命名格式是yourProjectName-Prefix.pch