Не удается открыть источник файл pch h

Не удается открыть источник файл pch h

Я пытаюсь создать решение на Visual Studio Community 2017, но получаю сообщение об ошибке «Не удается открыть файл включения: ‘stdio.h’ «. Я прочитал несколько похожих вопросов, но все еще не могу решить эту проблему. Похоже, stdio.h файл вызывается в stdafx.h файл. Ниже приведены подробности. Какие-либо предложения? (Я пока не могу встраивать изображения, поэтому, пожалуйста, нажмите на ссылки для скриншотов.)

Детали системы:
Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
— Установленная разработка рабочего стола с C ++ (Снимок экрана: Список установки )

Шаг 1: Я написал знаменитую программу Hello World на C ++.

Шаг 2: Я нажал на Построить> Построить решение.

Проблема: ‘Stdio.h’: Данный файл или каталог отсутствует. Полная ошибка:

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

  1. Свойства конфигурации> Каталоги VC ++
    Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
  2. Снимок экрана: Solution Explorer (файлы в проекте)

Код в stdafx.cpp файл:

Код в stdafx.h файл:

Обратите внимание #include за а также оба имеют красную линию загогулины внизу и говорят «не может открыть исходный файл».
TRIED: я попытался удалить последние две строки, но потом я получил больше ошибок.

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

Решение

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

Другие решения

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

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

Читайте также:  Ошибка получения хэша принтформы

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

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

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

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

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

Читайте также:  Гравированный знак diablo 3 где взять

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

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

Итак, я пытался изучить cpp, и я писал программу, и когда я пытаюсь построить решение, он выдает ошибку, говорящую

неожиданный конец файла при поиске предварительно скомпилированного заголовка. Вы забыли добавить #include "pch.h" к своему источнику?

Затем я включил его, и я получил ту же ошибку, а также другую поговорку

не могу открыть исходный файл pch.h

c++ visual-studio pch

1 ответ

0 selbie [2019-01-09 04:21:00]

Один из вариантов, если вы новичок в c++, это просто отключить предварительно скомпилированные заголовки в настройках проекта.

Когда я создаю свое решение на С++ в Visual Studio, он жалуется, что отсутствует файл xxxxx.pch. Есть ли параметр, который мне не хватает, чтобы вернуть предварительно скомпилированные заголовки?

вот точная ошибка для полноты:

  • Щелкните правой кнопкой мыши на своем проекте в обозревателе решений.
  • Нажмите "Свойства" в нижней части выпадающего меню.
  • В левом верхнем углу страницы свойств, выберите "Все конфигурации" в раскрывающемся меню.
  • Откройте дерево C/С++ и выберите Precompiled Headers
  • Предварительно скомпилированный заголовок: выберите Use (/Yu)
  • Заполните поле Precompiled Header File. Стандартом является stdafx.h
Читайте также:  При умножении ненулевых матриц получиться нулевая матрица

Если у вас нет stdafx.h в ваших файлах заголовков, поставьте его там. редактировать это для # включения всех заголовков, которые вы хотите предварительно скомпилировать.

  • Поместите файл с именем stdafx.cpp в свой проект. Поместите #include "stdafx.h" наверху, и ничего больше.
  • Щелкните правой кнопкой мыши по stdafx.cpp в обозревателе решений. Выберите Свойства и Все конфигурации снова, как на шаге 4.
  • . но на этот раз выберите Precompiled Header Создать (/Yc). Это будет только привязать к одному файлу stdafx.cpp.
  • Поместите #include "stdafx.h" в самый верх всех исходных файлов.
  • Lucky 13. Перекрестите пальцы и нажмите Build.

    Использование прекомпилированного заголовка (pch) — это двухэтапный процесс.

    На первом этапе вы компилируете файл заглушки (в VS200x он обычно называется stdafx.cpp ). Этот файл заглушки косвенно включает только заголовки, которые вы хотите предварительно скомпилировать. Как правило, один небольшой заголовок (обычно stdafx.h ) содержит стандартные заголовки, такие как и , и затем он включается в файл-заглушку. Компиляция создает файл .pch.

    На шаге 2 ваш фактический исходный код включает в себя тот же небольшой заголовок с шага 1, что и первый заголовок. Компилятор, когда он встречает этот специальный заголовок, вместо этого считывает соответствующий .pch файл. Это означает, что он не должен (повторно) компилировать эти стандартные заголовки каждый раз.

    Ссылка на основную публикацию
    Наигач значение слова википедия
    вопрос опубликован 21.01.2017 04:17:02 Это же шифровка. Если бы было всё понятно, то это не была бы шифровка, а была...
    Метод фора и мальгранжа
    Пусть дан граф G=(X, A), где X=< хi >, i =1, 2, . , n – множество вершин, а A=<...
    Мультиварка moulinex r13 a инструкция
    Мулинекс - популярный французский бренд, который остаётся конкурентоспособным на протяжении многих лет. Кухонные приборы этого производителя всегда радуют хозяек своей...
    Не включается принтер epson l132
    Довольно часто владельцы печатающей оргтехники сталкиваются со следующей банальной проблемой — не включается принтер. Т.е. вы нажимаете на кнопку, отвечающую...
    Adblock detector