134 votes

Comment réparer l'erreur PCH?

Lorsque j'essaie de créer mon application en Xcode , j'obtiens ce message d'erreur:

Fichier PCH construit à partir d'une branche différente ((clang-425.0.24)) que le compilateur ((clang-425.0.27))

Cela ne se produit pas avant, mais c'était la première version après la mise à jour de Xcode.

D'autres applications fonctionnent, mais pas spécifiquement.

Si je désactive le paramètre "Precompile Prefix Header" , cela fonctionne.

Comment puis-je corriger cette erreur et continuer à utiliser ce paramètre?

249voto

gaige Points 9669

C'est souvent un problème de mise en cache. Il est généralement possible de résoudre le problème en maintenant la touche Option enfoncée et en choisissant Product> Clean Build Folder ...

39voto

Sedes Points 433

Il semble que le Produit > Nettoyer le Dossier de création... (avec la touche Option enfoncée) fonctionne pour la plupart des gens. Voir la réponse choisie par @gaige.

Si vous êtes à la différence de la plupart des gens (moi y compris) et cela provoque encore vous avez de la difficulté à XCode a probablement quitté votre partagée en-têtes précompilés ailleurs. Pour moi, ils étaient dans un dossier similaire à ceci:

/var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders

J'ai juste supprimé l'ensemble de la SharedPrecompiledHeaders dossier et qui a résolu les choses pour moi. Je n'irais pas toucher beaucoup d'autres ici, mais...

6voto

Adam Points 17726

Après la mise à jour de Xcode j'ai été faire cela avec plusieurs projets. Nettoyer Dossier de création Propre et n'a eu aucun effet - @sedes réponse et @josema.vitaminew 'commentaire n'a pour moi. Mais il peut être difficile, sauf si vous utilisez un peu de ruse, de sorte que voici une étape par étape de raccourci:

  1. aller pour le journal de génération a échoué
  2. utilisez cmd-f "SharedPrecompiledHeaders" pour le retrouver (il sera au milieu d'un massif horrible complexe de la ligne de commande)
  3. glisser-sélectionnez le texte "SharedPrecompiledHeaders" et tous les caractères AVANT mais PAS APRÈS elle jusqu'à ce que vous obtenez pour le début de ce chemin peu (toujours dans le milieu du grand bloc de texte), par exemple pour moi: "/var/folders/03/n71d4r551jv40j5nb8r9fjy80000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
  4. ouvrez le Finder
  5. menu: Allez -> Aller au dossier...
  6. copier/coller le chemin d'accès sélectionné
  7. dans "SharedPrecompiledHeaders" supprimer TOUS les sous-dossiers (ce qui est sûr: c'est que les données mises en cache)

...et maintenant, tous vos projets seront "Fixe", mais il va devoir se reconstruire, première fois, avec zéro de la mise en cache (de sorte que la PROCHAINE génération sera plus lente que la normale).

4voto

karim Points 4704

En particulier, si vous créez à partir d'une ligne de commande ou si vous avez un script de génération, le nettoyage de la cible xcode ne suffit pas. Vous avez supprimé ce dossier.

L'emplacement d'en-tête précompilé se trouve dans le

 Target -> build settings => "Build locations" -> Precompiled headers cached path
 

Supprimer ce dossier avec,

 #rm -fr SharedPrecompiledHeaders
 

entrer la description de l'image ici

3voto

Sachin Points 131

Si ce n'est pas résolu par le nettoyage. C'est un problème de cache de construction - maintenez la touche Option enfoncée et accédez à Projet> Nettoyer le dossier de construction. Cela a résolu mon problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X