Я пытаюсь создать решение для 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:\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 ==========
Устранение неисправностей/Вещи, которые я пробовал:
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>
обе имеют красную линию <tchar.h>
внизу и говорят, что "невозможно открыть исходный файл".
TRIED: Я попытался удалить последние две строки, но потом у меня появилось больше ошибок.
TRIED: Поскольку многие предположили, что stdafx.h не требуется, я попытался удалить только первую строку, #include "stdafx.h"
. Но для этого я должен был сделать немного больше. ПОСМОТРЕТЬ ОТВЕТ.
Существует три способа решить эту проблему.
#include "stdafx.h"
#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 Installer Modify. Возможно, это была проблема, потому что я был установлен после установки Visual Studio или потому, что мне нужен SDK 10. Чтобы быть в безопасности, я полностью переустановил.
Похожая проблема с переносом проекта из VS2013 в VS2017,
Исправить: изменить "Properties-> Общий-> Версия SDK Windows" на 10
Столкнулась с проблемой отсутствия stdlib.h
и stdio.h
(и, возможно, больше) после установки сообщества VS2017 на новом компьютере и переноса решения из VS2013 на VS2017.
Используется предложение @Maxim Akristiniy, но по-прежнему появляется сообщение об ошибке совместимости с набором инструментов. Однако сам VS предложил выполнить перенастройку решения, щелкнув правой кнопкой мыши на решении в обозревателе решений, затем выбрав из списка пункт Retarget solution
и обновленную Windows SDK Version
из раскрывающегося списка.
Теперь мои проекты связаны с проблемой.
Обратите внимание, что вам может потребоваться сделать проект для вашего проекта запуска для перехвата.
Если вы не хотите использовать Windows SDK для Windows 10 (например, вы можете работать над проектом с открытым исходным кодом, решение которого не принимается вами), вы можете решить эту проблему в проекте Windows SDK 8.1 с помощью Tools → Get Tools and Features... → Individual Compontents tab
навигации Tools → Get Tools and Features... → Individual Compontents tab
"Отдельные компоненты" и установка отдельных компонентов "Windows 8.1 SDK" (в составе SDK, библиотек и сред) и "Windows Universal CRT SDK" (в разделе "Компиляторы, инструменты сборки и среды выполнения"):
У меня была аналогичная проблема после обновления моего VS2017. Проект построен отлично; но много "ошибок", когда код был поднят в редакторе. Даже попытался переустановить VS. Я смог решить эту проблему, установив опцию "Игнорировать стандартные включенные пути" в "Да". Попытка построить решение с большим количеством ошибок. Вернулся и установил вариант №. После перестройки моя проблема исчезла.
Столкнулся с той же проблемой, другое решение заключается в добавлении включенных по умолчанию, это исправило проблему для меня:
$(IncludePath);
У меня была такая же проблема с проектом 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