Comment réparer le fichier .pch manquant lors de la construction?

Lorsque je construis ma solution c ++ dans Visual Studio, il se plaint que le fichier xxxxx.pch est manquant. Y a-t-il un paramètre qui me manque pour récupérer les en-têtes pré-compilés?

Voici l’erreur exacte pour être complet:

Error 1 fatal error C1083: Cannot open precomstackd header file: 'Debug\xxxxx.pch': No such file or directory 

Related of "Comment réparer le fichier .pch manquant lors de la construction?"

REMARQUE: les versions ultérieures de l’EDI peuvent utiliser “pch” plutôt que “stdafx” dans les noms par défaut des fichiers associés. Il peut être nécessaire de remplacer pch pour stdafx dans les instructions ci-dessous. Je m’excuse. Ce n’est pas de ma faute.

  1. Cliquez avec le bouton droit sur votre projet dans l’Explorateur de solutions.
  2. Cliquez sur Propriétés au bas du menu déroulant.
  3. En haut à gauche des pages de propriétés, sélectionnez Toutes les configurations dans le menu déroulant.
  4. Ouvrez l’arborescence C / C ++ et sélectionnez En-têtes précompilés
  5. En-tête précompilé: sélectionnez Utiliser (/ Yu)
  6. Remplissez le champ Fichier d’en-tête précompilé. Standard est stdafx.h
  7. Cliquez sur OK

  8. Si vous n’avez pas stdafx.h dans vos fichiers d’en-tête, placez-le. Modifiez-le pour inclure tous les en-têtes que vous souhaitez précomstackr.

  9. Placez un fichier nommé stdafx.cpp dans votre projet. Mettez #include “stdafx.h” en haut, et rien d’autre.
  10. Cliquez avec le bouton droit sur stdafx.cpp dans l’Explorateur de solutions. Sélectionnez à nouveau Propriétés et Toutes les configurations comme à l’étape 4 …
  11. … mais cette fois-ci sélectionnez En-tête précompilé Créer (/ Yc). Cela ne sera lié qu’au fichier stdafx.cpp.
  12. Placez #include “stdafx.h” tout en haut de tous vos fichiers sources.

Chanceux 13. Croisez les doigts et appuyez sur Construire.

L’utilisation de l’en-tête précompilé (pch) est un processus en deux étapes.

Dans la première étape, vous comstackz un fichier stub (dans VS200x, il s’appelle généralement stdafx.cpp ). Ce fichier stub inclut indirectement uniquement les en-têtes que vous souhaitez précomstackr. En règle générale, un petit en-tête (généralement stdafx.h ) répertorie les en-têtes standard tels que et , qui sont ensuite inclus dans le fichier de remplacement. La compilation crée le fichier .pch.

À l’étape 2, votre code source actuel inclut le même petit en-tête de l’étape 1 que le premier en-tête. Le compilateur, lorsqu’il rencontre cet en-tête spécial, lit à la place le fichier .pch correspondant. Cela signifie qu’il n’est pas nécessaire de (re) comstackr ces en-têtes standard à chaque fois.

Dans votre cas, il semble que l’étape 1 échoue. Le fichier stub est-il toujours présent? Dans votre cas, ce serait probablement xxxxx.cpp . Il doit s’agir d’un fichier compilé avec /Yc:xxxxx.pch , car c’est l’indicateur du compilateur pour indiquer qu’il s’agit de l’étape 1 du processus PCH. Si xxxxx.cpp est présent, et est un tel fichier stub, alors il manque probablement son /Yc: compilateur.

Réparer:

  1. Assurez-vous d’avoir xxxxx.cpp dans votre projet

  2. Comstackz xxxxx.cpp avec l’ option / Yc ( Créer un en- tête précompilé)
    (clic droit sur xxxxx.cpp -> propriétés -> en-têtes précompilés -> créer )

  3. Comstackz tous les autres fichiers avec l’indicateur / Yu ( utilisez l’en- tête précompilé)
    (clic droit sur le projet -> propriétés -> en-têtes précompilés -> utiliser )

  1. Faites un clic droit sur le projet et sélectionnez l’élément de menu de la propriété
  2. goto C / C ++ -> En-têtes précompilés
  3. Sélectionnez Ne pas utiliser les en-têtes précompilés

Oui, il peut être éliminé avec les options / Yc, comme d’autres l’ont fait remarquer, mais vous n’avez probablement pas besoin de le toucher pour le réparer. Pourquoi obtenez-vous cette erreur en premier lieu sans modifier les parameters? Vous avez peut-être «nettoyé» le projet et essayé de comstackr un seul fichier cpp. Vous obtiendrez cette erreur dans ce cas car l’en-tête du précompilateur est désormais manquant. Construisez tout le projet (même en cas d’échec) et créez un seul fichier cpp et vous n’obtiendrez pas cette erreur.

Si tout est correct, mais que cette erreur est présente, il faut vérifier la section suivante dans le fichier ****. Vcxproj:

   

Dans mon cas, il y avait un nom incorrect d'une configuration: seulement le premier mot.

Je sais que ce sujet est très ancien, mais je parlais de cela récemment dans VS2015 et ce qui a aidé à supprimer les dossiers de compilation et à le reconstruire. Cela peut être dû à la tentative de fermeture du programme ou à l’arrêt ou au gel d’un programme de VS pendant la construction.

Je cherchais le fichier iOS PCH ayant le même problème, si vous êtes arrivé comme moi, la solution que j’ai trouvée consiste à effacer les données dérivées; Fermez Simulator (s), allez à xCode prefs -> locations -> allez dans le chemin du fichier de données dérivé, fermez xCode, supprimez les fichiers du dossier de données dérivé, relancez et acclamez 🙂

Essayez Build> Clean Solution, puis Build> Build Solution. Cela fonctionne pour moi.