it-swarm.com.ru

Не удается открыть включаемый файл: 'stdio.h' - Visual Studio Community 2017 - Ошибка C++

Я пытаюсь создать решение на Visual Studio Community 2017, но получаю сообщение об ошибке "Невозможно открыть включаемый файл: '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.

Problem:'stdio.h': Нет такого файла или каталога. Полная ошибка: 

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

Устранение неполадок/Вещи, которые я пробовал:

  1. Свойства конфигурации> Каталоги VC++
    Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
  2. Снимок экрана: Solution Explorer (файлы в проекте)
  3. Код в файле 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
    
  4. Код в файле 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> внизу имеют красную чернильницу и говорят «не удается открыть исходный файл».
    TRIED: я попытался удалить последние две строки, но потом я получил больше ошибок.

  5. ПОПРОБУЙТЕ: так как многие предположили, что stdafx.h не требуется, я попытался удалить только первую строку, #include "stdafx.h". Но для того, чтобы это сработало, мне пришлось сделать немного больше. СМ. ОТВЕТ. НИЖЕ.

30
dahiana

Есть три способа решить эту проблему.

  1. Игнорировать предварительно скомпилированные заголовки # 1
    Шаги: Проект> Свойства> Свойства конфигурации> C/C++> Командная строка> в поле Дополнительные параметры добавьте/Y-. ( Снимок экрана со страницами свойств )> Ok> Удалить #include "stdafx.h" 
  2. Игнорировать предварительно скомпилированные заголовки # 2
    Шаги: Файл> Создать> Проект> ...> В окне приложения Wizard нажмите кнопку Далее> Снимите флажок «Скомпилированный заголовок»> Готово> Удалить #include "stdafx.h"
  3. Переустановите 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. Так я и сделал с помощью опции Modify установщика Visual Studio. Возможно, это была проблема, потому что я установил ее после того, как Visual Studio уже была установлена, или потому что мне нужен SDK 10 вместо этого. Просто чтобы быть в безопасности, я сделал полную переустановку. 

8
dahiana

Возникла та же проблема с переносом проекта с VS2013 на VS2017,
Исправлено: измените «Свойства-> Общие-> Версия Windows SDK» на 10

70
Maxim Akristiniy

Столкнулся с проблемой отсутствия stdlib.h и stdio.h (и, возможно, большего) после установки VS2017 Community на новый компьютер и миграции решения с VS2013 на VS2017.

Использовал предложение @Maxim Akristiniy , но все еще получал сообщение об ошибке, касающееся совместимости набора инструментов. Однако сама VS предложила выполнить ретаргетинг решения, щелкнув правой кнопкой мыши решение в Solution Explorer, затем выбрав Retarget solution из меню и обновленный Windows SDK Version из выпадающего списка.

Сейчас мои проекты строятся без проблем.

Обратите внимание, что вам может потребоваться сделать проект стартовым проектом для ретаргетинга.

9
ysap

Если вы не хотите использовать 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» (в разделе «Компиляторы», «Инструменты сборки и среды выполнения»): 

2
Hemaolle

У меня была похожая проблема после обновления моего VS2017. Проект построен хорошо; но много «ошибок», когда код был поднят в редакторе. Даже попробовал переустановить VS. Я смог решить эту проблему, установив для параметра «Игнорировать стандартные пути включения» значение «Да». Попытка построить решение с большим количеством ошибок. Вернулся и установил опцию на Нет. После восстановления моя проблема ушла.

1
David Goeken

Для Cuda:

Щелкните правой кнопкой мыши по вашему проекту. Перейдите в Properties-> Cuda и установите «Cuda Toolkit Custom Dir» в свой каталог инструментария Cuda.

Мой был: C: \\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0

 enter image description here

0
Sapnesh Naik

Грязное исправление: Добавить $ (VC_IncludePath); $ (WindowsSDK_IncludePath); в свойства проекта/C/C++/Общие/Дополнительные каталоги включения

0
Andy Lucny

Сценарий:

  1. Windows 10 сVisual Studio 2017(установка FRESH).

  2. 'C' project(ERRORlike -> не удается открыть исходный файл : 'stdio.h', 'windows.h' и т.д.).

Разрешить:

  1. Запустите ' установщик Visual Studio '.

  2. Нажмите кнопку «Изменить».

  3. Выберите « Разработка рабочего стола с помощью C++ ».

  4. В разделе «Сведения об установке» (обычно на правой боковой панели) выберите:

    4.1. Windows 10 SDK (10.0.17134.0) .

    • Версия SDK в 4.1. это только для примера.
  5. Нажмите кнопку «Изменить», чтобы применить изменения.

  6. Щелкните правой кнопкой мыши «SomeProject» -> «Свойства».
  7. «Конфигурация:» -> «Все конфигурации» и «Платформа:» -> «Все платформы».
  8. «Свойства конфигурации» -> «Общие» -> « Версия Windows SDK »:
    • изменить (выбрать из выпадающего списка) версию SDK на установленную в настоящее время ;
  9. Нажмите кнопку «Применить», чтобы применить изменения.
0
Ted

Столкнулся с той же проблемой, другое решение заключается в добавлении включенных по умолчанию, это исправило проблему для меня:

$(IncludePath);
0
GameDeveloper