XcodeのPrefix.pchファイルとは何ですか?


100

多くの開発者がさまざまな便利なマクロをに追加していPrefix.pchます。しかし、私の質問はそのPrefix.pchファイルが何であるかです。

  • そのPrefix.pchファイルをから削除するXcodeと、アプリケーションは実行されますか?それともエラーが表示されますか?それともビルド中にクラッシュしますか?

  • Prefix.pchファイルなしでアプリケーションを実行する方法


回答:


117

プリコンパイル済みヘッダー。

それは何ですか?

A Prefix.pchはプリコンパイル済みヘッダーです。プリコンパイル済みヘッダーは、コンパイルを高速化するために開発されました。同じヘッダーファイルを繰り返し解析するのではなく、これらのファイルは事前に1回解析されます。

Xcode

Xcodeでは、必要なヘッダーファイルのインポートを「プレフィックスヘッダー」に追加し、Precompile Prefix Headerそれを有効にしてそれらをプリコンパイルできるようにします。しかし、プレフィックスヘッダーの背後にある考え方は、プリコンパイルとは異なります。

プレフィックスヘッダーは、すべてのソースファイルの先頭に暗黙的に含まれます。それは各ソースファイルが追加するようなものです

#import "Prefix.pch"

他の何よりも前に、ファイルの先頭に。

それを削除します。

プリコンパイル済みヘッダーを削除できます。この質問は、以下にリンクしているスレッドですでに回答されています。必要なすべての情報と便利なコメントが含まれています。

XcodeプロジェクトからPrefix.pchファイルを削除してもよろしいですか?


24

Prefix.pchファイルとは何ですか?

.pchはプリコンパイル済みヘッダーです。

CおよびC ++プログラミング言語では、ヘッダーファイルは、Cプリプロセッサによって別のソースファイルにテキストが自動的に含まれるファイルであり、通常はソースファイルのコンパイラディレクティブを使用して指定されます。

プレフィックスヘッダーはコンパイルされてキャッシュに格納され、コンパイル時にすべてのファイルに自動的に含まれます。これにより、コンパイルが高速化され、ファイルを使用するすべてのファイルにインポート文を追加せずにファイルを含めることができます。それらは必須ではなく、実際に変更するとコンパイルが遅くなります。

はい、.pchファイルなしでプロジェクトをコンパイルして実行できます

Xcodeで、ターゲットのビルド設定(Command-Option-E、ビルドタブ)に移動し、[プリコンパイルプレフィックスヘッダー(GCC_PRECOMPILE_PREFIX_HEADER)]をオフにします。必要に応じて、プレフィックスヘッダー設定の値を削除することもできます。

また、

マクロを.pchファイルに含めないでください!.pchファイルは、定義上、プロジェクト固有のプリコンパイル済みヘッダーです。これはプロジェクトのコンテキストを超えて使用するべきではなく、#includesと#imports以外は何も含めるべきではありません。

いくつかのマクロがあり、ヘッダー間で共有したい場合は、独自のヘッダーファイル(Common.hなど)に貼り付け、.pchの先頭に#includeします。


この古いクエストに反対票を投じた理由を示すコメントを追加することを検討してください。
Hemang

7

プレフィックスヘッダーはコンパイルされてキャッシュに格納され、コンパイル時にすべてのファイルに自動的に含まれます。これにより、コンパイルが高速化され、ファイルを使用するすべてのファイルにインポート文を追加せずにファイルを含めることができます。それらは必須ではなく、実際に変更するとコンパイルが遅くなります。

一般に、.pchファイルの名前の形成はyourProjectName-Prefix.pch


1

歴史:

#include => #import => .pch

#includeと#import

プリコンパイル済みヘッダー-prefix.pch

#includevs @importには欠点があります- コンパイラーは何回も解析およびコンパイルする必要があるため、ビルド時間が遅くなります.hは、インポートされたファイルの。

Precompiled header file - .pch-共通ヘッダーを収集します。このファイルをプリコンパイルすると、ビルド時間を短縮するソースファイルで使用できます。

Prefix.pchサンプルを見てみましょう:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

.pchファイルを追加するにはBuild Settings

ここに画像の説明を入力してください

開発者は、.pchファイルをサポートするために追加コストがかかるファイルを管理する必要があります。

次のステップは@import[About]です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.