J'essaie de construire une solution sur Visual Studio Community 2017, mais je continue à obtenir l'erreur " Impossible d'ouvrir le fichier include : 'stdio.h'. ". J'ai lu plusieurs questions similaires, mais je n'arrive toujours pas à résoudre ce problème. Il semble que le stdio.h est appelé dans le fichier stdafx.h fichier. Vous trouverez ci-dessous plus de détails. Avez-vous des suggestions ? (Je ne peux pas encore intégrer les images, alors veuillez cliquer sur les liens pour obtenir des captures d'écran).
Détails du système : Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
-- Développement de bureau installé avec C++ ( Capture d'écran : Liste des installations )
Étape 1 : J'ai écrit le célèbre programme Hello World en C++.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
return 0;
}
Étape 2 : J'ai cliqué sur Build > Build Solution.
Problème : 'stdio.h' : No such file or directory . Erreur complète :
1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
1>stdafx.cpp
1>c:\users\dahiana mini\desktop\learncpp\helloworld\helloworld\stdafx.h(10):
fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
1>Done building project "HelloWorld.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Détails du dépannage/choses que j'ai essayées :
-
Propriétés de configuration > Répertoires VC++
Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
-
Capture d'écran : Explorateur de solutions (fichiers dans le projet)
-
Code en stdafx.cpp fichier :
// stdafx.cpp : source file that includes just the standard includes // HelloWorld.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file
-
Code en stdafx.h fichier :
// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently #pragma once #include "targetver.h" #include <stdio.h> #include <tchar.h>
REMARQUE : le
#include
pour<stdio.h>
et<tchar.h>
Les deux ont la ligne rouge en dessous, et dit "cannot open source file".
ESSAI : J'ai essayé de supprimer les deux dernières lignes, mais j'ai eu plus d'erreurs. -
ESSAI : Comme beaucoup ont suggéré que stdafx.h n'est pas nécessaire, j'ai essayé de supprimer juste la première ligne,
#include "stdafx.h"
. Mais pour que cela fonctionne, je devais faire un peu plus. VOIR LA RÉPONSE CI-DESSOUS.
3 votes
Commencez par supprimer l'inclusion de stdafx.h car elle n'est pas standard et complète. inutile dans VS2017.
2 votes
Désactiver l'en-tête précompilé et supprimer stdafx*.
0 votes
@DeiDei Oh, j'ai effectivement essayé cela. Je vais l'ajouter ci-dessus. D'une certaine manière, cela n'a pas fonctionné pour moi, car je n'ai supprimé que cette ligne,
#include "stdafx.h"
. J'ai dû faire un peu plus, ce qui est, je pense, ce que @manni66 suggérait. Tout d'abord, j'ai configuré mes options pour ignorer les en-têtes précompilés en suivant les instructions suivantes ici . Ensuite, j'ai supprimé cette ligne dans le code. Merci à tous pour leur contribution !0 votes
D'une manière ou d'une autre, c'est en fait un peu bizarre, car <stdio.h> doit exister et fonctionner dans tout compilateur correctement configuré, même en mode C++.
0 votes
Vous pouvez envisager
#include <cstdio>
.1 votes
Si c'est le cas, mon erreur est peut-être due au fait que mon installation du SDK Windows ne fonctionne pas bien avec mon installation de Visual Studio. Voir la réponse ci-dessous.