Impossible d'ouvrir le fichier include: 'stdio.H' - Visual Studio Community 2017-erreur C++

je suis en train de Construire une Solution sur Visual Studio Community 2017, mais je reçois le message d'erreur "Impossible d'ouvrir le fichier include: 'stdio.h'". J'ai lu plusieurs questions similaires, mais ne peut toujours pas résoudre ce problème. Apparemment, le stdio.h le fichier est appelé dans le stdafx.h fichier. Voici plus de détails. Toutes les suggestions? (Je ne peux pas intégrer des images encore, alors veuillez cliquer sur les liens pour les captures d'écran.)

Système détails: Windows 10

Visual Studio Community 2017 v. 15.2 (26430.6)

-- Développement de bureau installé avec C++ (Capture d'écran: Installation de liste)


Etape 1: j'ai écrit le fameux programme Hello World en C++.

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

Etape 2: j'ai cliqué sur Build > Build Solution.

Problème: ' stdio.h': Aucun fichier ou répertoire. Plein D'Erreur:

1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
1>stdafx.cpp
1>c:usersdahiana minidesktoplearncpphelloworldhelloworldstdafx.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épannage des détails ou des Choses que j'ai essayé:

  1. propriétés de Configuration > répertoires VC++

    Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
  2. Capture d'écran: l'Explorateur de solutions (les fichiers dans le projet)
  3. Code stdafx.rpc 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
    
  4. Code 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:#include<stdio.h> et <tchar.h> les deux ont la ligne rouge en dessous, et dit "impossible d'ouvrir le fichier source".

    Essayé: j'ai essayé de supprimer les deux dernières lignes, mais puis j'ai eu plus d'erreurs.

  5. essayé: puisque beaucoup ont suggéré que stdafx.h n'est pas nécessaire, j'ai essayé de l'enlever juste la première ligne, #include "stdafx.h". Mais pour que cela fonctionne, j'ai dû faire un peu plus. VOIR LA RÉPONSE DESSOUS.

23
demandé sur dahiana 2017-05-27 20:41:03

6 réponses

a Obtenu le même problème avec le projet de portage de VS2013 à VS2017,

Correction: remplacer "propriétés - > Généralités - > Version Windows SDK" par 10

51
répondu Maxim Akristiniy 2017-06-26 06:48:04

fait face au problème de la disparition stdlib.h et stdio.h (et peut-être plus) après avoir installé la communauté VS2017 sur un nouvel ordinateur et avoir migré une solution de VS2013 à VS2017.

Utilisé @Maxime Akristiniy's la proposition, mais toujours un message d'erreur concernant les outils de compatibilité. Cependant VS lui-même a suggéré de faire solution retarget en droit-cliquant sur la solution dans L'Explorateur De Solutions, puis en sélectionnant Retarget solution du menu et de la mise à jour Windows SDK Version à partir de la liste déroulante.

maintenant mes projets se construisent sans problème.

notez que vous aurez peut-être besoin de faire du projet votre projet de démarrage pour que le recentrage vous atteigne.

6
répondu ysap 2017-07-20 21:54:49

Il y a trois manières de résoudre ce problème.

  1. Ignorez Les En-Têtes Précompilés #1

    Mesures: Projet > Propriétés > Propriétés de Configuration > C/C++ > en Ligne de Commande > dans la zone des Options Supplémentaires ajouter /Y-. (Capture d'écran des Pages de propriétés) > Ok > Supprimer #include "stdafx.h"
  2. Ignorez Les En-Têtes Précompilés #2

    Mesures: Fichier > Nouveau > Projet > ... > Dans l'Application Fenêtre de l'Assistant cliquez sur Suivant > décochez la case en-tête précompilée > terminer > Supprimer #include "stdafx.h"
  3. Réinstaller Visual Studio

    Cela a également fonctionné pour moi, parce que j'ai réalisé que peut-être il y avait quelque chose de mal avec mon Windows SDK. J'utilisais Windows 10, mais avec Windows SDK 8.1. Vous pouvez avoir ce problème.

    Mesures: ouvrez Visual Studio Installer > cliquez sur la barre de Menu à trois lignes > désinstallez > redémarrez votre ordinateur > Open Visual Studio Installer > installez ce que vous voulez, mais assurez-vous d'installer uniquement le SDK 10 Windows le plus récent, pas plusieurs ni le 8.1.

    la première fois que J'installais Visual Studio, je recevais une erreur disant que J'avais besoin d'installer Windows SDK 8.1. C'est ce que J'ai fait, grâce à L'option Modifier de Visual Studio Installer. Peut-être que c'était un problème parce que je l'ai installé après Visual Studio était déjà installé, ou parce que j'avais besoin du SDK 10 à la place. Juste pour être sûr j'ai fait un réinstallation complète.

4
répondu dahiana 2017-05-28 15:25:38

juste au cas où vous ne voulez pas passer Windows SDK à Windows 10 (vous pourriez par exemple travailler sur un projet open source où la décision n'est pas la vôtre à faire), vous pouvez résoudre ce problème dans un projet Windows SDK 8.1 en naviguant Tools -> Get Tools and Features... -> Individual Compontents tab et l'installation des composants individuels "Windows 8.1 SDK" (sous SDK, bibliothèques et cadres) et "Windows Universal CRT SDK" (sous Comiplers, build tools et runtimes):

0
répondu Hemaolle 2018-09-15 11:30:51

j'ai eu un problème similaire après avoir mis à jour ma VS2017. Projet construit bien; mais beaucoup d '"erreurs" quand le code a été soulevé dans l'éditeur. J'ai même essayé de réinstaller VS. J'ai pu le résoudre en paramétrant L'option "Ignore Standard Include Paths" à Yes. Tenté de construire la solution avec beaucoup d'erreurs. J'y suis retourné et j'ai mis L'option À Non. Après la reconstruction, mon problème a disparu.

-1
répondu David Goeken 2018-04-07 03:08:24

j'ai eu le même problème de construction par rapport au projet 2013 avec Visual Studio 2017 IDE. La solution était de mettre à droite "Platformtoolset v120 (Visual Studio 2013). Pour cela, le SDK 8.1 de Windows doit être installé. Si vous voulez utiliser Platformtoolset v141 (Visual Studio 2017) il doit y avoir Windows SDK 10. Le jeu de plateforme peut être choisi dans la boîte de dialogue Propriétés du projet: General -> Platformtoolset

-1
répondu Kombinator 2018-07-20 11:19:52