Не удается открыть включаемый файл: ‘stdio.h’ — сообщество Visual Studio 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  using namespace std; int main () {cout  

Шаг 2: Я щелкнул Build> Build Solution.

Проблема: ‘stdio.h’ : нет такого файла или каталога. Полная ошибка:

  1> ------ Сборка началась: Проект: HelloWorld, Конфигурация: Отладка Win32 ------ 1> stdafx.cpp1> c:   users  dahiana mini  desktop  learncpp  helloworld  helloworld  stdafx.h (10): фатальная ошибка C1083: не удается открыть включаемый файл: 'stdio.h': нет такого файла или каталога1> Готовый проект сборки "HelloWorld.vcxproj"  - НЕ ВЫПОЛНЕНО. ========== Сборка: 0 успешных, 1 неуспешных, 0 актуальных, 0 пропущенных ==========  

Сведения об устранении неполадок/Что я пробовал:

  1. Свойства конфигурации> Каталоги VC ++
    Включить каталоги $ (VC_IncludePath); $ (WindowsSDK_IncludePath);
  2. Снимок экрана: обозреватель решений (файлы в проекте)
  3. Код в файле stdafx.cpp :

     //stdafx.cpp: исходный файл, который включает только стандартные include//HelloWorld.pch будет предварительно скомпилированным заголовком//stdafx.obj будет содержать предварительно скомпилированную информацию о типе # include "stdafx.h"//TODO: ссылка на любой a  Дополнительные заголовки, которые вам нужны в STDAFX.H//, а не в этом файле  
  4. Код в stdafx.h file:

     //stdafx.h: включаемый файл для стандартных системных//включаемых файлов,//или специфичных для проекта включаемых файлов, которые используются часто, но//изменяются нечасто #  pragma once # include "targetver.h" #include  #include  

    ПРИМЕЧАНИЕ: #include для и оба имеют красную волнистую линию внизу и говорят «не удается открыть файл с исходным кодом».
    ПОПРОБОВАНО: я попытался удалить последние две строки, но затем у меня появилось больше ошибок.

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


100

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

Поделиться
Улучшить этот ответ
ответил 26 июня ‘ 17 в 6:48
  • 7
    У меня это сработало. Благодаря! Я бы также добавил, что эти свойства можно получить, щелкнув правой кнопкой мыши проект в проводнике решений. — Вардит 18 июля ’17, в 16:26
  • 1
    Мне также пришлось установить компонент Visual Studio «Windows Universal CRT SDK», как описано здесь — stackoverflow.com/a/42778079/3893068 — Крис Кестер, 01 октября 2018 г., 13:48
  • 1
    У меня была такая же проблема после того, как ничего не изменилось в все в проекте. Я бы предположил, что это может быть связано с обновлениями Windows? Была выбрана версия 10.something, но никогда не было доступной версии, и эта работала. Я предполагаю, что этого нового раньше не было, когда он работал. — Preza8, 19 окт. ’18 в 10:06
  • В Microsoft Visual Studio Community 2017 15.7.1 у меня нет «версии Windows SDK». Однако щелчок правой кнопкой мыши по решению и выполнение «Перенацелить решение» сработали. — Швейцарский Франк, 15 дек. ’18, 18:44
  • LOL, вернуться к сохранить изменения, а затем снова вернуться к версии 10 у меня сработало — Фи, 08 фев. ’19 в 17:04
| показать 1 дополнительный комментарий

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


18

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

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

Теперь мои проекты создаются без проблем.

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

Поделиться
Улучшите этот ответ
отредактировал 20 июля ’17 в 21:54
ответил 20 июля ’17 в 21:37
  • 1
    Я заметил (удручающе), что иногда приходится выходить из Visual Studio и перезапускать ее после любой этой возни. — HostileFork говорит, что не доверяйте SE 7 фев. 2018 в 10:45
  • 1
    В Microsoft Visual Studio Community 2017 15.7.1 у меня нет «версии Windows SDK», как упоминалось в ответе с наибольшим голосованием. Однако ваш ответ сработал нормально, и мне не пришлось ничего перезапускать. — Swiss Frank 15 дек. ’18 в 18:45
добавить комментарий |

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

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

Теперь мои проекты создаются без проблем.

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


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

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

Для CUDA:

Щелкните правой кнопкой мыши свой проект.

Перейдите в Свойства-> CUDA и установите « Пользовательский каталог CUDA Toolkit «в каталог набора инструментов CUDA.

Для меня это было: C: \ Program Files NVIDIA GPU Computing Toolkit CUDA v10.0

Поделиться
Улучшить этот ответ
отредактировал 5 декабря ’19 в 2:58
ответил 26 февраля ‘ 19 в 6:00
добавить комментарий |

Для CUDA:

Щелкните правой кнопкой мыши свой проект.

Перейдите в Свойства-> CUDA и установите « CUDA Toolkit Custom Dir » в свой каталог CUDA toolkit.

Для меня это было: C: \ Program Files NVIDIA GPU Computing Toolkit CUDA v10.0


5

На всякий случай, если вы не хотите перенастраивать Windows SDK на Windows 10 (например, вы можете работать над проектом с открытым исходным кодом где решение не ваше), вы можете решить эту проблему в проекте Windows SDK 8.1, перейдя в Инструменты -> Получить инструменты и компоненты ... -> вкладка Отдельные компоненты и установив отдельные компоненты «Windows 8. 1 SDK «(в пакетах SDK, библиотеках и фреймворках) и» Windows Universal CRT SDK «(в разделе» Компиляторы, средства сборки и среды выполнения «):

Поделиться
Улучшить этот ответ
отредактировано 15 октября 2018 г. в 16:50
ответил 31 августа 2018 в 15:19
  • 3
    Мне пришлось установить «Windows Universal CRT SDK «Компонент Visual Studio в дополнение к изменению версии Windows SDK на 10. — Крис Кестер, 01 октября 2018 г., 13:51
добавить комментарий |

На всякий случай, если вы не хотите переносить Windows SDK в Windows 10 (например, вы можете работать в проекте с открытым исходным кодом, где решение не ваше to make), вы можете решить эту проблему в проекте Windows SDK 8.1, перейдя Инструменты -> Получить инструменты и компоненты ... -> вкладка Отдельные компоненты и установив отдельные компоненты Windows 8.1 SDK «(в пакетах SDK, библиотеках и фреймворках) и» Windows Universal CRT SDK «(в разделе» Компиляторы, средства сборки и среды выполнения «):


3

Если вы столкнетесь с этой проблемой с Visual Studio 2019 (VS2019) , вы можете загрузить инструменты сборки с https ://visualstudio.microsoft.com/downloads/. И в разделе Инструменты для Visual Studio 2019 загрузите Инструменты сборки для Visual Studios 2019 .

Поделиться
Улучшить этот ответ
ответил 17 дек. ’19 в 21:33
добавить комментарий |

Если вы столкнетесь с этой проблемой с Visual Studio 2019 (VS2019) , вы можете скачать сборку инструменты с https://visualstudio.microsoft.com/downloads/. И в разделе Инструменты для Visual Studio 2019 загрузите Инструменты сборки для Visual Studios 2019 ..


2

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

  $ (IncludePath);  

Поделиться
Улучшить этот ответ
ответил 02 февраля ’19 в 13:00
добавить комментарий |

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

  $ (IncludePath);  

2

Сценарий:

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

  2. Проект ‘C’ ( ERROR как -> не может открыть файл с исходным кодом : ‘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. Нажмите кнопку «Применить», чтобы применить изменения.
Поделиться
Улучшите этот ответ
отредактировано 21 февраля ’19 в 16:09
ответил 12 февраля ’19 в 15:04
  • изменение версии Windows sdk (шаг 8) это то, что мне помогло. — Чанг Шэн 19 авг. ’20 в 6:34
добавить комментарий |

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

  2. Проект ‘C’ ( ERROR как -> не может файл с открытым исходным кодом : ‘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. Нажмите кнопку «Применить», чтобы применить изменения.

2

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

Поделиться
Улучшить этот ответ
ответил 24 февраля ’19 в 07:48
  • Я … Я сижу здесь, законно потрясенный тем, что мне пришлось это сделать … Не могу поверить это сработало .. — RedhibitedProfile, 23 июн. ’20 в 6:02
добавить комментарий |

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


1

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

Поделиться
Улучшите это ответ
ответ дан 7 апр ’18 в 16: 08
  • 2
    Где мне найти эту опцию? — Шимми Вайцхандлер, 23 апр. ’18 в 5:06
  • 1
    свойства проекта -> Свойства конфигурации -> C/C ++ -> препроцессор -> игнорировать стандартные пути включения. Да, ты прав. Снова прошиваю Microsoft b/s. — Owl 26 июн 2018 в 13:27
добавить комментарий |

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


0

У меня аналогичная проблема, но немного другая. Я могу скомпилировать и запустить код CUDA 10 по умолчанию без проблем, но есть много ошибок, связанных с отображением файла stdio.h в окне редактирования. Что раздражает. Я решил это, изменив имя файла кода с «kernel.cu» на «kernel.cpp». Это подключено, но работает для меня. И пока он работает хорошо.

Поделиться
Улучшите этот ответ
ответил 23 апр. ’19 в 4:20
добавить комментарий |

У меня похожая проблема, но немного другая. Я могу скомпилировать и запустить код CUDA 10 по умолчанию без проблем, но есть много ошибок, связанных с отображением файла stdio.h в окне редактирования. Что раздражает. Я решил это, изменив имя файла кода с «kernel.cu» на «kernel.cpp». Это подключено, но работает для меня. И пока он работает хорошо.


-1

У меня была такая же проблема при создании проекта VS 2013 с IDE Visual Studio 2017. Решением было установить правильный «Platformtoolset v120 (Visual Studio 2013). Для этого должен быть установлен Windows SDK 8.1. Если вы хотите использовать Platformtoolset v141 (Visual Studio 2017), должен быть Windows SDK 10.. Platformtoolset можно выбрать в диалоговом окне свойств проекта: General -> Platformtoolset

Поделиться
Улучшить этот ответ
ответил 20 июля ’18 в 11:19
добавить комментарий |

У меня была такая же проблема при создании проекта VS 2013 с IDE Visual Studio 2017. Решением было установить правильный «Platformtoolset v120 (Visual Studio 2013). Для этого должен быть установлен Windows SDK 8.1. Если вы хотите использовать Platformtoolset v141 (Visual Studio 2017), должен быть Windows SDK 10. Можно выбрать Platformtoolset. внутри диалога свойств проекта: General -> Platformtoolset

Оцените статью
Botgadget.ru
Добавить комментарий