it-swarm.dev

Include-Datei kann nicht geöffnet werden: 'stdio.h' - Visual Studio Community 2017 - C ++ - Fehler

Ich versuche, eine Lösung für Visual Studio Community 2017 zu erstellen, erhalte jedoch weiterhin die Fehlermeldung " Include-Datei kann nicht geöffnet werden: 'stdio.h' ". Ich habe mehrere ähnliche Fragen durchgelesen, kann dieses Problem jedoch immer noch nicht beheben. Es sieht so aus, als würde die Datei stdio.h in der Datei stdafx.h aufgerufen. Datei. Nachfolgend finden Sie weitere Details. Irgendwelche Vorschläge? (Ich kann noch keine Bilder einbetten, bitte klicken Sie auf die Links für Screenshots.)

Systemdetails: Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
- Installierte Desktop-Entwicklung mit C++ ( Screenshot: Installationsliste )


Schritt 1: Ich habe das berühmte Hello World-Programm in C++ geschrieben.

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

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

Schritt 2: Ich habe auf Build> Build Solution geklickt.

Problem: 'stdio.h': Keine solche Datei oder Verzeichnis. Voller Fehler:

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

Fehlerbehebungsdetails/Dinge, die ich versucht habe:

  1. Konfigurationseigenschaften> VC++ - Verzeichnisse
    Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
  2. Screenshot: Solution Explorer (Dateien im Projekt)
  3. Code in stdafx.cpp Datei:

    // 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.h Datei:

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

    HINWEIS: Unter #include Für <stdio.h> Und <tchar.h> Befindet sich die rote Kringellinie und die Meldung "Quelldatei kann nicht geöffnet werden".
    VERSUCHT: Ich habe versucht, die letzten beiden Zeilen zu entfernen, aber dann habe ich mehr Fehler bekommen.

  5. VERSUCHT: Da viele vorgeschlagen haben, dass stdafx.h nicht erforderlich ist, habe ich versucht, nur die erste Zeile #include "stdafx.h" Zu entfernen. Aber damit das funktioniert, musste ich noch ein bisschen mehr tun. SIEHE ANTWORT UNTEN.

39
dahiana

Es gibt drei Möglichkeiten, dieses Problem zu lösen.

  1. Vorkompilierte Header # 1 ignorieren
    Schritte: Projekt> Eigenschaften> Konfigurationseigenschaften> C/C++> Befehlszeile> im Feld Zusätzliche Optionen hinzufügen/Y-. ( Screenshot der Eigenschaftenseiten )> Ok> #include "stdafx.h" entfernen 
  2. Vorkompilierte Header ignorieren # 2
    Schritte: Datei> Neu> Projekt> ...> Klicken Sie im Anwendungsfenster Wizard auf Weiter> Deaktivieren Sie das Kontrollkästchen Vorkompilierter Header> Fertig stellen> Entfernen #include "stdafx.h".
  3. Visual Studio neu installieren
    Dies funktionierte auch für mich, weil mir klar wurde, dass mit meinem Windows SDK möglicherweise etwas nicht stimmte. Ich habe Windows 10 verwendet, aber mit Windows SDK 8.1. Möglicherweise haben Sie auch dieses Problem.
    Schritte: Öffnen Sie das Visual Studio-Installationsprogramm> Klicken Sie auf die dreizeilige Menüleiste> Deinstallieren> Starten Sie den Computer neu.> Öffnen Sie das Visual Studio-Installationsprogramm , nicht mehrere oder die 8.1. 

    Bei der ersten Installation von Visual Studio wurde eine Fehlermeldung angezeigt, dass ich Windows SDK 8.1 installieren musste. Also habe ich es mit der Modify-Option von Visual Studio Installer gemacht. Möglicherweise war dies ein Problem, weil ich es installiert hatte, nachdem Visual Studio bereits installiert war, oder weil ich stattdessen SDK 10 benötigte. Um sicherzugehen, habe ich eine komplette Neuinstallation vorgenommen. 

8
dahiana

Das gleiche Problem mit der Projektportierung von VS2013 auf VS2017,
Fix: Ändern Sie "Eigenschaften-> Allgemein-> Windows SDK-Version" in 10

70

Nach dem Installieren von VS2017 Community auf einem neuen Computer und dem Migrieren einer Lösung von VS2013 auf VS2017 trat das Problem auf, dass stdlib.h und stdio.h (und möglicherweise mehr) fehlten.

Der Vorschlag von @Maxim Akristiniy wurde verwendet, aber es wurde immer noch eine Fehlermeldung bezüglich der Toolset-Kompatibilität angezeigt. VS selbst schlug jedoch vor, ein Lösungs-Retarget durchzuführen, indem Sie mit der rechten Maustaste in Solution Explorer auf die Lösung klicken, dann Retarget solution aus dem Menü und den aktualisierten Windows SDK Version aus der Dropdown-Liste auswählen.

Jetzt bauen meine Projekte ohne Probleme auf.

Beachten Sie, dass Sie möglicherweise das Projekt zu Ihrem Startprojekt machen müssen, damit das Retargeting erkannt wird.

9
ysap

Nur für den Fall, dass Sie Windows SDK nicht auf Windows 10 stoßen möchten (Sie könnten beispielsweise an einem Open Source-Projekt arbeiten, für das Sie keine Entscheidung treffen), können Sie dieses Problem in einem Windows SDK 8.1-Projekt lösen Navigieren in Tools -> Get Tools and Features... -> Individual Compontents tab und Installieren der einzelnen Komponenten "Windows 8.1 SDK" (unter SDKs, Bibliotheken und Frameworks) und "Windows Universal CRT SDK" (unter Compiler, Tools und Laufzeiten erstellen): 

2
Hemaolle

Nach dem Update meines VS2017 hatte ich ein ähnliches Problem. Projekt gut gebaut; aber viele "Fehler", wenn Code im Editor aufgerufen wurde. Versuchte sogar, VS neu zu installieren. Ich konnte das Problem lösen, indem ich die Option "Standard-Include-Pfade ignorieren" auf "Ja" setzen. Es wurde versucht, die Lösung mit vielen Fehlern zu erstellen. Ich ging zurück und stellte die Option auf Nein. Nach dem Wiederaufbau wurde mein Problem behoben.

1
David Goeken

Für Cuda:

Klicken Sie mit der rechten Maustaste auf Ihr Projekt. Gehen Sie zu Properties-> Cuda und setzen Sie "Cuda Toolkit Custom Dir" in Ihr Cuda-Toolkit-Verzeichnis.

Meine war: C: \\ Programme\NVIDIA GPU Computing Toolkit\CUDA\v10.0

 enter image description here

0
Sapnesh Naik

Ein fehlerhafter Fix: Fügen Sie $ (VC_IncludePath); $ (WindowsSDK_IncludePath); in Projekteigenschaften/C/C++/General/Zusätzliche Include-Verzeichnisse

0
Andy Lucny

Szenario:

  1. Windows 10 mitVisual Studio 2017(FRESH-Installation).

  2. 'C' -Projekt(FEHLERlike -> kann Quelldatei nicht öffnen : 'stdio.h', 'windows.h' usw.).

Auflösung:

  1. Führen Sie ' Visual Studio Installer ' aus.

  2. Klicken Sie auf die Schaltfläche "Ändern".

  3. Wählen Sie ' Desktop-Entwicklung mit C++ ' aus.

  4. Wählen Sie unter "Installationsdetails" (normalerweise in der rechten Seitenleiste) Folgendes aus:

    4.1. Windows 10 SDK (10.0.17134.0) .

    • Version des SDK in 4.1. ist nur zum beispiel.
  5. Klicken Sie auf die Schaltfläche "Ändern", um die Änderungen zu übernehmen.

  6. Klicken Sie mit der rechten Maustaste auf 'SomeProject' -> 'Properties'.
  7. 'Konfiguration:' -> 'Alle Konfigurationen' und 'Plattform:' -> 'Alle Plattformen'.
  8. 'Konfigurationseigenschaften' -> 'Allgemein' -> ' Windows SDK-Version ':
    • ändern (Auswahl aus Kombinationsfeld) SDK-Version in aktuell installiert ;
  9. Klicken Sie auf die Schaltfläche "Übernehmen", um die Änderungen zu übernehmen.
0
Ted

Ähnliches Problem für mich aber etwas anders. Ich kann den Standard-CUDA-10-Code problemlos kompilieren und ausführen, aber es gibt viele Fehler im Zusammenhang mit der Anzeige der Datei stdio.h im Bearbeitungsfenster. Was nervt. Ich löse das Problem, indem ich den Namen der Codedatei von "kernel.cu" in "kernel.cpp" ändere. Das ist verkabelt, funktioniert aber bei mir. Und es läuft soweit gut.

0
rml

Angesichts des gleichen Problems besteht eine weitere Lösung darin, die Standardeinstellungen hinzuzufügen. Dieses Problem wurde für mich behoben:

$(IncludePath);
0
GameDeveloper