Lorsque je crée 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 l'exhaustivité:
Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
c++
visual-studio
precompiled-headers
pch
Sam Mackrill
la source
la source
Réponses:
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 par stdafx dans les instructions ci-dessous. Je m'excuse. Ce n'est pas de ma faute.
Cliquez sur OK
Si vous n'avez pas stdafx.h dans vos fichiers d'en-tête, placez-le là. Modifiez-le pour # inclure tous les en-têtes que vous souhaitez précompiler.
Lucky 13. Croisez vos doigts et appuyez sur Construire.
la source
stdafx.pch
fichier, tandis que laxxxxx.pch
question de la question fait allusion à un problème plus complexe (configuration multi-PCH).L'utilisation de l'en-tête précompilé (pch) est un processus en deux étapes.
Dans la première étape, vous compilez un fichier stub (dans VS200x, il est généralement appelé
stdafx.cpp
. Les versions plus récentes utilisentpch.cpp
.). Ce fichier stub inclut indirectement uniquement les en-têtes que vous souhaitez précompiler. En règle générale, un petit en-tête (généralementstdafx.h
oupch.hpp
) répertorie les en-têtes standard tels que<iostream>
et<string>
, et il est ensuite inclus dans le fichier stub. La compilation crée le fichier .pch.À l'étape 2, votre code source réel 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 le fichier .pch correspondant à la place. Cela signifie qu'il n'a pas à (re) compiler 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 le cas
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. Sixxxxx.cpp
est présent, et est un tel fichier stub, alors il manque probablement son/Yc:
option de compilation.la source
Réparer:
Assurez-vous d'avoir xxxxx.cpp dans votre projet
Compilez xxxxx.cpp avec l' indicateur / 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 )
Compilez tous les autres fichiers avec le drapeau / Yu ( Utiliser l'en- tête précompilé)
(clic droit sur le projet -> propriétés -> En-têtes précompilés -> utiliser )
la source
la source
Create (/Yc)
(pour restaurer puis réutiliser)Oui, il peut être éliminé avec les options / Yc comme d'autres l'ont souligné, mais vous n'aurez probablement pas besoin de le toucher pour le réparer. Pourquoi obtenez-vous cette erreur en premier lieu sans modifier aucun paramètre? Vous avez peut-être «nettoyé» le projet et essayé de compiler un seul fichier cpp. Vous obtiendrez cette erreur dans ce cas car l'en-tête du précompilateur est maintenant manquant. Construisez simplement l'ensemble du projet (même en cas d'échec) et créez un seul fichier cpp et vous n'obtiendrez pas cette erreur.
la source
Si cela vous arrive sur une version de serveur (AppCenter) et que vous utilisez CocoaPods, assurez-vous que votre Podfile est archivé.
AppCenter n'exécute la commande «pod install» que s'il trouve un Pofile et qu'il NE trouve PAS le dossier PODS sur les fichiers.
J'ai fait archiver le dossier, mais comme git ignore automatiquement les fichiers .pch (vérifiez que vous .gitignore pour très bien le vérifier), mon .pch n'a pas été archivé.
J'ai trié mon problème en forçant les fichiers .pch à le vérifier, mais la suppression du dossier PODS devrait également fonctionner, car Appcenter exécutera la commande d'installation du pod dans ce cas.
J'espère que cela aide quelqu'un.
la source
Si tout va bien, 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.
la source
Je sais que ce sujet est très ancien, mais je traitais récemment de cela dans VS2015 et ce qui a aidé était de supprimer les dossiers de construction et de les reconstruire. Cela peut être dû à la tentative de fermeture du programme ou à l'arrêt / gel du programme VS lors de la construction.
la source
Je cherchais le fichier iOS PCH ayant le même problème, si vous êtes ici comme moi aussi, la solution que j'ai trouvée est en effaçant les données dérivées; Fermez le (s) simulateur (s), allez dans les préférences de xCode -> emplacements -> allez dans le chemin du fichier de données dérivé, fermez xCode, supprimez les fichiers dans le dossier de données dérivé, relancez et applaudissez :)
la source
Essayez Build> Clean Solution, puis Build> Build Solution. Cela fonctionne pour moi.
la source