So viele Entwickler fügen dem verschiedene verschiedene Komfortmakros hinzu Prefix.pch
. Aber meine Frage ist, was ist diese Prefix.pch
Datei.
Wenn ich diese
Prefix.pch
Datei von meiner entferne,Xcode
wird meine Anwendung dann ausgeführt? Oder wird ein Fehler angezeigt? Oder wird es während des Builds abstürzen?Wie kann ich meine Anwendung ohne
Prefix.pch
Datei ausführen ?
Antworten:
Vorkompilierter Header.
Was ist es?
A
Prefix.pch
ist ein vorkompilierter Header. Vorkompilierte Header wurden erfunden , um das Kompilieren zu beschleunigen . Anstatt immer wieder dieselben Header-Dateien zu analysieren, werden diese Dateien vorab einmal analysiert.Xcode
In Xcode fügen Sie Importe der gewünschten Header-Dateien in einen „Präfix-Header“ ein und aktivieren
Precompile Prefix Header
diese, damit sie vorkompiliert werden. Die Idee hinter einem Präfix-Header unterscheidet sich jedoch von der Vorkompilierung.Ein Präfix-Header ist implizit am Anfang jeder Quelldatei enthalten. Es ist, als würde jede Quelldatei hinzugefügt
am Anfang der Datei, vor allem anderen.
Entfernen Sie es.
Sie können den vorkompilierten Header entfernen. Diese Frage wurde bereits in dem Thread beantwortet, den ich unten verlinke. Es enthält alle Informationen, die Sie benötigen, sowie nützliche Kommentare.
Ist es in Ordnung, die Datei Prefix.pch aus dem Xcode-Projekt zu entfernen?
quelle
Was ist die Datei Prefix.pch?
Ein .pch ist ein vorkompilierter Header.
In den Programmiersprachen C und C ++ ist eine Header-Datei eine Datei, deren Text vom C-Präprozessor automatisch in eine andere Quelldatei aufgenommen werden kann. Dies wird normalerweise durch die Verwendung von Compiler-Anweisungen in der Quelldatei angegeben.
Präfix-Header werden kompiliert und in einem Cache gespeichert und dann während der Kompilierung automatisch in jede Datei aufgenommen. Dies kann die Kompilierung beschleunigen und Sie können eine Datei einfügen, ohne jeder Datei, die sie verwendet, eine Importanweisung hinzuzufügen. Sie sind nicht erforderlich und verlangsamen die Kompilierung, wenn Sie sie ändern.
Ja, Sie können das Projekt ohne .pch-Datei kompilieren und ausführen
Wechseln Sie in Xcode zu den Build-Einstellungen Ihres Ziels (Befehl-Option-E, Registerkarte Build) und deaktivieren Sie das Präkompilierungs-Präfix-Header (GCC_PRECOMPILE_PREFIX_HEADER). Sie können den Wert der Einstellung Präfix-Header auch entfernen, wenn Sie dies wünschen.
Beachten Sie auch, dass
Fügen Sie keine Makros in eine a.pch-Datei ein! Eine .pch-Datei ist per Definition ein projektspezifischer vorkompilierter Header. Es sollte wirklich nicht über den Kontext des Projekts hinaus verwendet werden und es sollte wirklich nichts anderes enthalten als #includes und #imports.
Wenn Sie einige Makros haben und solche, die Sie zwischen Headern teilen möchten, stecken Sie sie in eine eigene Header-Datei - Common.h oder was auch immer - und # schließen Sie diese am Anfang der .pch ein
quelle
Präfix-Header werden kompiliert und in einem Cache gespeichert und dann während der Kompilierung automatisch in jede Datei aufgenommen. Dies kann die Kompilierung beschleunigen und Sie können eine Datei einfügen, ohne jeder Datei, die sie verwendet, eine Importanweisung hinzuzufügen. Sie sind nicht erforderlich und verlangsamen die Kompilierung, wenn Sie sie ändern.
Im Allgemeinen
.pch
ist die Bildung von DateinamenyourProjectName-Prefix.pch
quelle
Geschichte:
#include vs #import
Vorkompilierte Header - prefix.pch
#include
vs@import
hat einen Nachteil - langsame Erstellungszeit, da ein Compiler so oft analysieren und kompilieren muss, wie viele.h
Dateien importiert wurden.Precompiled header file - .pch
- sammelt die gemeinsamen Header. Wenn diese Datei vorkompiliert ist, kann sie in Quelldateien verwendet werden, was die Erstellungszeit verkürzt.Schauen wir uns das
Prefix.pch
Beispiel an:Um eine
.pch
Datei hinzuzufügen , gehen Sie zuBuild Settings
:Entwickler müssen
.pch
Dateien verwalten , die zusätzliche Kosten für die Unterstützung verursachen.Der nächste Schritt ist
@import
[Über]quelle