Tant de développeurs ajoutent diverses macros pratiques au Prefix.pch
. Mais ma question est de savoir quel est ce Prefix.pch
fichier.
Si je supprime ce
Prefix.pch
fichier de monXcode
, mon application s'exécutera-t-elle? Ou montrera-t-il une erreur? Ou va-t-il planter pendant la construction?Comment puis-je exécuter mon application sans
Prefix.pch
fichier
Réponses:
En-tête précompilé.
Qu'Est-ce que c'est?
A
Prefix.pch
est un en-tête précompilé. Les en-têtes précompilés ont été inventés pour accélérer la compilation . Plutôt que d'analyser les mêmes fichiers d'en-tête encore et encore, ces fichiers sont analysés une fois, à l'avance.Xcode
Dans Xcode, vous ajoutez les importations des fichiers d'en-tête que vous souhaitez dans un «en-tête de préfixe», et en les activant
Precompile Prefix Header
pour qu'ils soient précompilés. Mais l'idée derrière un en-tête de préfixe est différente de la précompilation.Un en-tête de préfixe est implicitement inclus au début de chaque fichier source. C'est comme si chaque fichier source ajoute
en haut du fichier, avant toute autre chose.
Enlevez-le.
Vous pouvez supprimer l'en-tête précompilé. Cette question a déjà reçu une réponse dans le fil de discussion que je lie ci-dessous. Il contient toutes les informations dont vous avez besoin ainsi que des commentaires utiles.
Est-il possible de supprimer le fichier Prefix.pch du projet Xcode?
la source
Qu'est-ce que le fichier Prefix.pch?
Un .pch est un en-tête pré-compilé.
Dans les langages de programmation C et C ++, un fichier d'en-tête est un fichier dont le texte peut être automatiquement inclus dans un autre fichier source par le préprocesseur C, généralement spécifié par l'utilisation des directives du compilateur dans le fichier source.
Les en-têtes de préfixe sont compilés et stockés dans un cache, puis automatiquement inclus dans chaque fichier lors de la compilation. Cela peut accélérer la compilation et vous permet d'inclure un fichier sans ajouter une instruction d'importation à chaque fichier qui l'utilise. Ils ne sont pas obligatoires et ralentissent la compilation chaque fois que vous les modifiez.
Oui, vous pouvez compiler et exécuter le projet sans fichier .pch
Dans Xcode, accédez aux paramètres de construction de votre cible (Commande-Option-E, onglet de construction) et décochez Precompile Prefix Header (GCC_PRECOMPILE_PREFIX_HEADER). Vous pouvez également supprimer la valeur du paramètre En-tête de préfixe si vous le souhaitez.
Notez également que,
Ne mettez pas de macros dans un fichier.pch! Un fichier .pch est, par définition, un en-tête précompilé spécifique au projet. Il ne devrait vraiment pas être utilisé au-delà du contexte du projet et il ne devrait vraiment contenir rien d'autre que #includes et #imports.
Si vous avez des macros et que vous souhaitez partager entre les en-têtes, alors collez-les dans un fichier d'en-tête qui leur est propre - Common.h ou autre - et #incluez cela au début du .pch
la source
Les en-têtes de préfixe sont compilés et stockés dans un cache, puis automatiquement inclus dans chaque fichier lors de la compilation. Cela peut accélérer la compilation et vous permet d'inclure un fichier sans ajouter une instruction d'importation à chaque fichier qui l'utilise. Ils ne sont pas obligatoires et ralentissent la compilation chaque fois que vous les modifiez.
Généralement
.pch
, la formation des noms de fichiers estyourProjectName-Prefix.pch
la source
L'histoire:
#include vs #import
En-têtes précompilés - prefix.pch
#include
vs@import
a un inconvénient - un temps de construction lent car un compilateur doit analyser et compiler autant de fois que de.h
fichiers importés.Precompiled header file - .pch
- rassemble les en-têtes communs. Lorsque ce fichier est précompilé, il peut être utilisé dans les fichiers source, ce qui accélère le temps de construction.Jetons un coup d'œil à l'
Prefix.pch
exemple:Pour ajouter un
.pch
fichier, accédez àBuild Settings
:Le développeur doit gérer le
.pch
fichier qui impose des coûts supplémentaires pour le prendre en charge.La prochaine étape est
@import
[À propos]la source