Не удается открыть файл include: 'stdio.h' - Visual Studio Community 2017-ошибка C++
Я пытаюсь создать решение в Visual Studio Community 2017, но я продолжаю получать ошибку"не удается открыть файл include: 'stdio.h' ". Я прочитал несколько подобных вопросов, но все еще не могу решить эту проблему. Похоже на С stdio.h файл вызывается в stdafx.h. Ниже приведены более подробные сведения. Есть предложения? (Я еще не могу вставлять изображения, поэтому, пожалуйста, нажмите на ссылки для скриншотов.)
подробности:
Windows 10
Сообщество Visual Studio 2017 V.15.2 (26430.6)
-- Установленная разработка рабочего стола с C++ (скриншот: список установка)
Шаг 1: Я написал знаменитую программу Hello World на C++.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
return 0;
}
Шаг 2: Я нажал на Build > Build Solution.
: 'С stdio.h': нет такого файла или каталога. Полная Ошибка:
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 ==========
детали устранения неполадок / вещи, которые я пробовал:
- свойства конфигурации > каталоги VC++
Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
- скриншот: Обозреватель решений (файлы в проекте)
-
код stdafx.cpp:
// 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
-
код stdafx.h:
// 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>
Примечание:
#include
для<stdio.h>
и<tchar.h>
оба имеют красную линию закорючки внизу и говорят"не удается открыть исходный файл".
Пробовал: я попытался удалить последние две строки, но затем я получил больше ошибок. пробовал: так как многие предположили, что stdafx.h не требуется, я попытался удалить только первую строку,
#include "stdafx.h"
. Но для того чтобы это работало, я должен был сделать немного больше. СМ. ОТВЕТ НИЖЕ.
6 ответов
получил ту же проблему с переносом проекта с VS2013 на VS2017,
Исправить: измените "свойства- > общие - > версия Windows SDK" на 10
столкнулся с проблемой отсутствует stdlib.h
и stdio.h
(и, возможно, больше) после установки сообщества VS2017 на новый компьютер и переноса решения с VS2013 на VS2017.
используется @Maxim Akristiniy's предложение, но по-прежнему получил сообщение об ошибке относительно совместимости toolset. Однако VS сам предложил сделать решение retarget, щелкнув правой кнопкой мыши по решению в Обозреватель, затем выберите Retarget solution
из меню и обновляется!--3--> из выпадающего списка.
теперь мои проекты строят без проблемы.
обратите внимание,что вам может потребоваться сделать проект стартовым проектом для переориентации.
существует три способа решить эту проблему.
-
Игнорировать Предкомпилированных Заголовков #1
действия: проект > свойства > свойства конфигурации > C / C++ > Командная строка > в поле Дополнительные параметры add / Y-. (скриншот страницы свойств) > Ok > Удалить#include "stdafx.h"
-
Игнорировать Предкомпилированных Заголовков #2
действия: Файл > Создать > Проект > ... > В окне Мастера приложений нажмите кнопку Далее > снимите флажок предварительно скомпилированный заголовок > готово > удалить#include "stdafx.h"
-
Переустановите Visual Studio
Это также сработало для меня, потому что я понял, что, возможно, что-то не так с моим Windows SDK. Я использовал Windows 10, но с Windows SDK 8.1. Вы можете иметь эту проблему.
действия: открыть установщик Visual Studio > нажмите на трехстрочную строку меню > Удалить > перезагрузить компьютер > открыть установщик Visual Studio > Установите то, что вы хотите, но убедитесь, что вы устанавливаете только последнюю версию Windows SDK 10, а не несколько или 8.1.при первой установке Visual Studio я получу сообщение об ошибке, указывающее, что мне нужно установить Windows SDK 8.1. Так я и сделал, через опцию изменения установщика Visual Studio. Возможно, это была проблема, потому что я установил его после установки Visual Studio или потому, что мне нужен SDK 10. На всякий случай я сделал полную переустановку.
на случай, если вы не хотите поднимать Windows SDK до Windows 10 (например, вы можете работать над проектом с открытым исходным кодом, где решение не ваше), вы можете решить эту проблему в проекте Windows SDK 8.1, перейдя Tools -> Get Tools and Features... -> Individual Compontents tab
и установка отдельных компонентов "Windows 8.1 SDK" (под SDK, библиотеками и фреймворками) и "Windows Universal CRT SDK" (под Comiplers, инструментами сборки и временем выполнения):
У меня была аналогичная проблема после обновления моего VS2017. Проект построен хорошо, но много ошибок, когда код был воспитан в Редакторе. Даже попытался переустановить VS. Я смог решить его, установив параметр "игнорировать стандартные пути включения" в Yes. Попытка построить решение с большим количеством ошибок. Вернулся и установил параметр нет. После восстановления моя проблема исчезла.
У меня была та же проблема с созданием проекта VS 2013 с Visual Studio 2017 IDE. Решением было установить правильный " Platformtoolset v120 (Visual Studio 2013). Для этого должен быть установлен Windows SDK 8.1. Если вы хотите использовать Platformtoolset v141 (Visual Studio 2017), должен быть Windows SDK 10. Platformtoolset можно выбрать в диалоговом окне свойств проекта: общие - > Platformtoolset