Lorsque je crée ma solution c ++ dans Visual Studio, il se plaint de l'absence du fichier xxxxx.pch. Y at-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
REMARQUE: les versions ultérieures de IDE peuvent utiliser "pch" plutôt que "stdafx" dans les noms par défaut des fichiers associés. Il peut être nécessaire de remplacer pd par stdafx dans les instructions ci-dessous. Je m'excuse. Ce n'est pas de ma faute.
Cliquez OK
Si vous n'avez pas stdafx.h dans vos fichiers d'en-tête, mettez-le là. Modifiez-le pour inclure tous les en-têtes que vous voulez précompiler.
Lucky 13. Croisez vos doigts et appuyez sur Construire.
L'utilisation d'en-tête précompilé (pch) est un processus en deux étapes.
À la première étape, vous compilez un fichier de raccord (dans VS200x, il est généralement appelé stdafx.cpp
). Ce fichier de raccord n'inclut indirectement que les en-têtes que vous souhaitez précompiler. 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 <iostream>
et <string>
, qui sont ensuite inclus dans le fichier de raccord. 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) compiler ces en-têtes standard à chaque fois.
Dans votre cas, il semble que l'étape 1 échoue. Le fichier de raccord 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 il s'agit de l'indicateur de compilation qui indique l'étape 1 du processus PCH. Si xxxxx.cpp
est présent et constitue un fichier de raccord, il manque probablement son option de compilateur /Yc:
.
Réparer:
Assurez-vous d'avoir xxxxx.cpp dans votre projet
Compiler xxxxx.cpp avec l'indicateur/Yc (Create en-tête précompilé)
(clic droit sur xxxxx.cpp -> propriétés -> en-têtes précompilés -> créer)
Compiler tous les autres fichiers avec l'indicateur/Yu (tiliser En-tête précompilé)
(clic droit sur projet -> propriétés -> en-têtes précompilés -> tiliser)
Oui, il peut être éliminé avec les options/Yc comme d'autres l'ont fait remarquer, mais il est fort probable que vous n'auriez 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 ensuite essayé de compiler un seul fichier cpp. Vous obtiendrez cette erreur dans ce cas car l'en-tête du précompileur est maintenant manquant. Il suffit de construire l’ensemble du projet (même s’il échoue) et de ne créer aucun fichier cpp unique et vous n’obtiendrez pas cette erreur.
Si cela vous arrive sur une version de serveur (AppCenter) et que vous utilisez CocoaPods, assurez-vous que votre fichier Podfile est archivé.
AppCenter n'exécute la commande "pod install" que s'il trouve un fichier Pofile et ne trouve pas le dossier PODS dans les fichiers.
Le dossier a été archivé, mais parce que git ignore automatiquement les fichiers .pch (vérifiez que vous êtes .gitignore pour vérifier cela), 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 pod install dans ce cas.
Heureusement, cela aide quelqu'un.
Si tout est correct, mais que cette erreur est présente, il faut vérifier la section suivante du fichier ****. Vcxproj:
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition=
Dans mon cas, il y avait un nom incorrect de configuration: seulement le premier mot.
Je sais que ce sujet est très ancien, mais je m'occupais de cela récemment dans VS2015 et ce qui m'a aidé était de supprimer les dossiers de construction et de le reconstruire. Cela est peut-être dû à une tentative de fermeture du programme ou à un programme d’arrêt/gel du programme pendant la construction.
Je cherchais le fichier PCH iOS qui pose le même problème. Si vous êtes ici comme moi aussi, la solution que j'ai trouvée consiste à effacer les données dérivées. Fermez le (s) simulateur (s), accédez aux préférences xCode -> emplacements -> accédez au chemin du fichier de données dérivé, fermez xCode, supprimez les fichiers du dossier de données dérivé, relancez-le et applaudissez :)