Kan include-bestand niet openen: ‘stdio.h’ – Visual Studio Community 2017 – C++-fout

Ik probeer een oplossing te bouwen voor Visual Studio Community 2017, maar ik krijg steeds de foutmelding “Kan include-bestand niet openen: ‘stdio.h’“. Ik heb verschillende soortgelijke vragen gelezen, maar kan dit probleem nog steeds niet oplossen. Het lijkt erop dat het bestand stdio.hwordt aangeroepen in het bestand stdafx.h. Hieronder vindt u meer details. Eventuele suggesties? (Ik kan nog geen afbeeldingen insluiten, dus klik op de links voor screenshots.)

Systeemdetails:
Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
— Desktopontwikkeling met C++ geïnstalleerd (Screenshot: installatielijst)


Stap 1:Ik schreef het beroemde Hello World-programma in C++.

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

Stap 2:ik klikte op Build > Oplossing bouwen.

Probleem:‘stdio.h’: zo’n bestand of map bestaat niet. Volledige fout:

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 ==========

Probleemoplossingsdetails/dingen die ik heb geprobeerd:

  1. Configuratie-eigenschappen > VC++-mappen
    Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
  2. Screenshot: Solution Explorer (bestanden in het project)
  3. Code in stdafx.cppbestand:

    // 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 in stdafx.hbestand:

    // 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>
    

    OPMERKING: de #includevoor <stdio.h>en <tchar.h>hebben beide de rode kronkellijn eronder , en zegt “kan bronbestand niet openen”.
    GEPROBEERD: Ik heb geprobeerd de laatste twee regels te verwijderen, maar toen kreeg ik meer fouten.

  5. GEPROBEERD: aangezien velen suggereerden dat stdafx.h niet vereist is, heb ik geprobeerd alleen de eerste regel te verwijderen, #include "stdafx.h". Maar om dit te laten werken, moest ik iets meer doen. ZIE ANTWOORD HIERONDER.


Antwoord 1, autoriteit 100%

Heb hetzelfde probleem met het overzetten van projecten van VS2013 naar VS2017,
Fix: verander “Eigenschappen->Algemeen->Windows SDK-versie” in 10


Antwoord 2, autoriteit 18%

Geconfronteerd met het probleem van het missen van stdlib.hen stdio.h(en misschien meer) na het installeren van VS2017 Community op een nieuwe computer en het migreren van een oplossing van VS2013 naar VS2017 .

Het voorstel van @Maxim Akristiniygebruikt, maar nog steeds een foutmelding over de compatibiliteit van toolset. VS stelde echter zelf voor om de oplossing opnieuw te targeten door met de rechtermuisknop op de oplossing te klikken in Solution Exploreren vervolgens Retarget solutionte selecteren in het menu en de bijgewerkte Windows SDK Versionuit de vervolgkeuzelijst.

Nu bouwen mijn projecten zonder problemen.

Houd er rekening mee dat u van het project mogelijk uw opstartproject moet maken om de retargeting te laten vangen.


Antwoord 3, autoriteit 11%

Er zijn drie manieren om dit probleem op te lossen.

  1. Negeer vooraf gecompileerde headers #1
    Stappen:Project > Eigenschappen > Configuratie-eigenschappen > C/C++ > Opdrachtregel > voeg in het vak Extra opties /Y- toe. (Screenshot van vastgoedpagina’s) > Oké > Verwijder #include "stdafx.h"
  2. Negeer voorgecompileerde headers #2
    Stappen:Bestand > Nieuw > Project > … > Klik in het venster Toepassingswizard op Volgende > Schakel het selectievakje Voorgecompileerde koptekst uit > Afwerking > Verwijder #include "stdafx.h"
  3. Visual Studio opnieuw installeren
    Dit werkte ook voor mij, omdat ik me realiseerde dat er misschien iets mis was met mijn Windows SDK. Ik gebruikte Windows 10, maar met Windows SDK 8.1. U kunt dit probleem ook hebben.
    Stappen:Open Visual Studio Installer > Klik op de drieregelige menubalk > > verwijderen Start uw computer opnieuw op > Open Visual Studio Installer > Installeer wat je wilt, maar zorg ervoor dat je alleen de nieuwste Windows SDK 10 installeert, niet meerdere of de 8.1.

    De eerste keer dat ik Visual Studio installeerde, kreeg ik een foutmelding dat ik Windows SDK 8.1 moest installeren. Dus dat deed ik, via de optie Wijzigen van Visual Studio Installer. Misschien was dit een probleem omdat ik het had geïnstalleerd nadat Visual Studio al was geïnstalleerd, of omdat ik in plaats daarvan SDK 10 nodig had. Voor de zekerheid heb ik een volledige herinstallatie gedaan.


Antwoord 4, autoriteit 7%

Voor CUDA:

Klik met de rechtermuisknop op uw project.

Ga naar Eigenschappen->CUDAen stel “CUDA Toolkit Custom Dir” in op uw CUDA-toolkitdirectory.

Voor mij was het: C:\\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0


Antwoord 5, autoriteit 6%

Voor het geval u Windows SDK niet wilt verhogen naar Windows 10 (u zou bijvoorbeeld aan een open source-project kunnen werken waar u niet de beslissing kunt nemen), kunt u dit probleem oplossen in een Windows SDK 8.1 project door te navigeren door Tools -> Get Tools and Features... -> Individual Compontents taben de afzonderlijke componenten “Windows 8.1 SDK” (onder SDK’s, bibliotheken en frameworks) en “Windows Universal CRT SDK” (onder Compilers, buildtools en runtimes) installeren:


Antwoord 6, autoriteit 3%

Als je dit probleem tegenkomt met Visual Studio 2019 (VS2019), kun je de build-tools downloaden van https://visualstudio.microsoft.com/downloads/. En onder Tools for Visual Studio 2019 en download Build Tools for Visual Studios 2019.


Antwoord 7, autoriteit 2%

Ondervond hetzelfde probleem, een andere oplossing is het toevoegen van standaard omvat, dit loste het probleem voor mij op:

$(IncludePath);

Antwoord 8, autoriteit 2%

Scenario:

  1. Windows 10met Visual Studio 2017(VERSE installatie).

  2. ‘C’-project(ERRORlike -> kan bronbestand niet openen: ‘ stdio.h’, ‘windows.h’, enz.).

Oplossen:

  1. Voer ‘Visual Studio-installatieprogramma‘ uit.

  2. Klik op de knop ‘Wijzigen’.

  3. Selecteer ‘Desktopontwikkeling met C++‘.

  4. Selecteer in “Installatiedetails” (meestal in de rechterzijbalk):

    4.1. Windows 10 SDK (10.0.17134.0).

    • Versie van SDK in 4.1. is maar een voorbeeld.
  5. Klik op de knop ‘Wijzigen’ om wijzigingen toe te passen.

  6. Klik met de rechtermuisknop op ‘SomeProject’ -> ‘Eigenschappen’.
  7. ‘Configuratie:’ -> ‘Alle configuraties’ en ‘Platform:’ -> ‘Alle platforms’.
  8. ‘Configuratie-eigenschappen’ -> ‘Algemeen’ -> ‘Windows SDK-versie‘:
    • wijzig (selecteer uit combobox) SDK-versie in momenteel geïnstalleerd;
  9. Klik op de knop ‘Toepassen’ om wijzigingen toe te passen.

Antwoord 9, autoriteit 2%

Een vuile oplossing: voeg $(VC_IncludePath);$(WindowsSDK_IncludePath); in project Eigenschappen / C/C++ / Algemeen / Extra mappen opnemen


Antwoord 10

Ik had een soortgelijk probleem na het updaten van mijn VS2017. Project prima gebouwd; maar veel ‘fouten’ toen code in de editor naar voren werd gebracht. Heb zelfs geprobeerd VS opnieuw te installeren. Ik heb het kunnen oplossen door de optie “Negeer standaard inclusief paden” in te stellen op Ja. Geprobeerd om de oplossing te bouwen met veel fouten. Ging terug en stelde de optie in op Nee. Na het opnieuw opbouwen was mijn probleem verdwenen.


Antwoord 11

Vergelijkbaar probleem voor mij, maar een beetje anders. Ik kan de standaard CUDA 10-code zonder probleem compileren en uitvoeren, maar er zijn veel fouten met betrekking tot de stdio.h-bestandsshow in het bewerkingsvenster. Wat vervelend is.
Ik los het op door de naam van het codebestand te wijzigen van “kernel.cu” in “kernel.cpp”. Dat is bedraad, maar werkt voor mij. En het loopt tot nu toe goed.


Antwoord 12

Hetzelfde probleem dat ik kreeg.
Voer ‘Visual Studio Installer’->Modify->Windows 10 SDK (10.0.17134.0) uit.
wacht tot de update is voltooid.
Start uw computer opnieuw op.

open VS-2017 en open uw project.

Klik met de rechtermuisknop op de projectoplossingsverkenner.
Selecteer “Retarget Solution” en selecteer vervolgens “Windows 10 SDK (10.0.17134.0)”.
Het werkte voor mij.


Antwoord 13

Ik had hetzelfde probleem bij het bouwen van VS 2013 Project met Visual Studio 2017 IDE.
De oplossing was om de juiste “Platformtoolset v120 (Visual Studio 2013)” in te stellen. Daarvoor moet de Windows SDK 8.1 geïnstalleerd zijn.
Als je Platformtoolset v141 (Visual Studio 2017) wilt gebruiken, moet er Windows SDK 10 zijn.
De Platformtoolset kan worden gekozen in het eigenschappenvenster van het project: Algemeen -> Platformtoolset

Other episodes