web-dev-qa-db-fra.com

Impossible d'ouvrir le fichier d'inclusion: 'stdio.h' - Visual Studio Community 2017 - Erreur C++

J'essaie de générer une solution sur Visual Studio Community 2017, mais le message d'erreur " Impossible d'ouvrir le fichier d'inclusion suivant: 'stdio.h' ". J'ai lu plusieurs questions similaires, mais je ne parviens toujours pas à résoudre ce problème. On dirait que le fichier stdio.h est appelé dans le fichier stdafx.h . Ci-dessous sont plus de détails. Aucune suggestion? (Je ne peux pas encore incorporer d'images, alors veuillez cliquer sur les liens pour voir les 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 d'installation )


É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 Construire> Construire la solution.

Problème: 'stdio.h': Aucun fichier ou répertoire de ce type. 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 de dépannage/Ce que j'ai essayé:

  1. Propriétés de configuration> Répertoires VC++
    Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
  2. Capture d'écran: Solution Explorer (fichiers du projet)
  3. Code dans 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
    
  4. Code dans 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: les #include pour <stdio.h> et <tchar.h> ont tous les deux la ligne de gribouillis rouge en dessous et indiquent "impossible d'ouvrir le fichier source".
    TRIED: J'ai essayé de supprimer les deux dernières lignes, mais j'ai eu plus d'erreurs.

  5. TRIED: Comme beaucoup de gens ont suggéré que stdafx.h n’était pas obligatoire, j’ai essayé de ne supprimer que la première ligne, #include "stdafx.h". Mais pour que cela fonctionne, je devais faire un peu plus. VOIR LA RÉPONSE CI-DESSOUS.

30
dahiana

Il y a trois façons de résoudre ce problème.

  1. Ignore les en-têtes précompilés n ° 1
    Étapes: Projet> Propriétés> Propriétés de configuration> C/C++> Ligne de commande> dans la zone Options supplémentaires, ajoutez/Y-. ( Capture d'écran des pages de propriétés )> Ok> Supprimer #include "stdafx.h" 
  2. Ignore les en-têtes précompilés n ° 2
    Étapes: Fichier> Nouveau> Projet> ...> Dans la fenêtre de l'application Wizard, cliquez sur Suivant> Désélectionnez la case En-tête précompilé> Terminer> Supprimer le #include "stdafx.h".
  3. Réinstaller Visual Studio
    Cela a également fonctionné pour moi, car je me suis rendu compte que quelque chose n'allait pas avec mon SDK Windows. J'utilisais Windows 10, mais avec Windows SDK 8.1. Vous pouvez aussi avoir ce problème.
    Étapes: Ouvrez Visual Studio Installer> Cliquez sur la barre de menus à trois lignes> Désinstaller> Redémarrez votre ordinateur> Ouvrez Visual Studio Installer> Installez ce que vous voulez, mais assurez-vous d’installer seulement le dernier SDK Windows 10. , pas de multiples ni le 8.1. 

    La première fois que j'ai installé Visual Studio, un message d'erreur indiquant que je devais installer Windows SDK 8.1 devait s'afficher. C'est ce que j'ai fait, via l'option Modify de Visual Studio Installer. C’est peut-être un problème parce que j’ai été installé après l’installation de Visual Studio ou parce que j’avais besoin du SDK 10 à la place. Juste pour être sûr, j'ai fait une réinstallation complète. 

8
dahiana

J'ai eu le même problème avec le portage du projet de VS2013 à VS2017,
Correctif: remplacez "Propriétés-> Général-> Version du SDK Windows" par 10

70
Maxim Akristiniy

A fait face au problème de stdlib.h et stdio.h (et peut-être davantage) manquant après l'installation de VS2017 Community sur un nouvel ordinateur et la migration d'une solution de VS2013 à VS2017.

Utilisation de la proposition de -Maxim Akristiniy , mais message d'erreur relatif à la compatibilité des outils. Cependant, VS a lui-même suggéré de recibler la solution en cliquant avec le bouton droit de la souris dans Explorateur de solutions, puis en sélectionnant Retarget solution dans le menu et le Windows SDK Version mis à jour dans la liste déroulante.

Maintenant, mes projets ne posent aucun problème.

Notez que vous devrez peut-être faire du projet votre projet de démarrage pour pouvoir être reciblé.

9
ysap

Juste au cas où vous ne voudriez pas utiliser Windows SDK sous Windows 10 (vous pourriez par exemple travailler sur un projet open source où la décision ne vous appartient pas), vous pouvez résoudre ce problème dans un projet Windows SDK 8.1 en naviguez Tools -> Get Tools and Features... -> Individual Compontents tab et installez les composants individuels "Windows 8.1 SDK" (sous SDK, bibliothèques et frameworks) et "Windows Universal CRT SDK" (sous Compilateurs, outils de compilation et environnements d'exécution): 

2
Hemaolle

J'ai eu un problème similaire après la mise à jour de mon VS2017. Projet bien construit; mais beaucoup d'erreurs lorsque le code a été introduit dans l'éditeur. Même essayé de réinstaller VS. J'ai pu résoudre le problème en réglant l'option «Ignorer les chemins d'inclusion standard» sur Oui. Tentative de construction de la solution avec beaucoup d'erreurs. Nous sommes revenus et avons mis l'option sur Non. Après la reconstruction, mon problème a disparu.

1
David Goeken

Pour Cuda:

Clic droit sur votre projet. Allez dans Propriétés-> Cuda et définissez "Cuda Toolkit Custom Dir" dans votre répertoire de toolkit Cuda.

Le mien était: C: \\ Program Files\Boîte à outils de calcul GPU NVIDIA\CUDA\v10.0

 enter image description here

0
Sapnesh Naik

Un correctif sale: Ajouter $ (VC_IncludePath); $ (WindowsSDK_IncludePath); dans le projet Propriétés/C/C++/Général/Répertoires d'inclusion supplémentaires

0
Andy Lucny

Scénario:

  1. Windows 10 avecVisual Studio 2017(installation FRESH).

  2. Projet 'C'(ERREURlike -> ne peut pas ouvrir le fichier source : 'stdio.h', 'windows.h', etc.).

Résoudre:

  1. Exécutez ' Visual Studio Installer '.

  2. Cliquez sur le bouton 'Modifier'.

  3. Sélectionnez ' Développement du bureau avec C++ '.

  4. Dans "Détails de l'installation" (généralement dans la barre latérale droite), sélectionnez:

    4.1. Windows 10 SDK (10.0.17134.0) .

    • Version du SDK en 4.1. est juste pour exemple.
  5. Cliquez sur le bouton 'Modifier' pour appliquer les modifications.

  6. Cliquez avec le bouton droit sur 'SomeProject' -> 'Propriétés'.
  7. 'Configuration:' -> 'Toutes les configurations' et 'Plate-forme:' -> 'Toutes les plates-formes'.
  8. 'Propriétés de configuration' -> 'Général' -> ' Version du Kit de développement logiciel (SDK) Windows ': .____.
    • changer (choisir dans la liste déroulante) la version du SDK en actuellement installé ;
  9. Cliquez sur le bouton 'Appliquer' pour appliquer les modifications.
0
Ted

Face au même problème, une autre solution consiste à ajouter des inclusions par défaut, cela a résolu le problème pour moi:

$(IncludePath);
0
GameDeveloper