Include pch h не работает

Как исправить отсутствие файла .pch при сборке?

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

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

11 ответов

ПРИМЕЧАНИЕ. Более поздние версии IDE могут использовать «pch» вместо «stdafx» в именах по умолчанию для связанных файлов. В приведенных ниже инструкциях может потребоваться заменить pch на stdafx. Я прошу прощения. Это не моя вина.

  1. Щелкните правой кнопкой мыши свой проект в обозревателе решений.
  2. Щелкните Свойства в нижней части раскрывающегося меню.
  3. В левом верхнем углу страниц свойств выберите в раскрывающемся меню «Все конфигурации».
  4. Откройте дерево C / C ++ и выберите Предварительно скомпилированные заголовки.
  5. Предварительно скомпилированный заголовок: выберите «Использовать» (/ Yu)
  6. Заполните поле Precompiled Header File. Стандарт — stdafx.h

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

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

    Я искал файл iOS PCH с той же проблемой, если вы попали сюда, как и я, решение, которое я нашел, — очистить производные данные; Закройте симуляторы, перейдите к параметрам xCode -> местоположения -> перейдите к пути к файлу производных данных, закройте xCode, удалите файлы в папке производных данных, перезапустите и приветствуйте 🙂

    Читайте также:  Фирма не работает если не сдавать отчеты

    Я знаю, что эта тема очень старая, но недавно я имел дело с этим в VS2015, и что помогло, так это удаление папок сборки и ее повторная сборка. Это могло произойти из-за попытки закрыть программу или из-за остановки / зависания программы VS во время сборки.

    Если все верно, но эта ошибка присутствует, необходимо проверить следующий раздел в файле ****. Vcxproj:

    В моем случае это было неверное имя конфигурации: только первое слово.

    Попробуйте Build> Clean Solution, затем Build> Build Solution. Это работает для меня.

    Если это происходит с вами на сборке сервера (AppCenter) и вы используете CocoaPods, убедитесь, что ваш Podfile зарегистрирован.

    AppCenter запускает команду «pod install» только в том случае, если он находит Pofile и НЕ находит папку PODS в файлах.

    У меня была отмечена папка, но поскольку git автоматически игнорирует файлы .pch (проверьте .gitignore, чтобы проверить это), мой .pch не проверялся.

    Я решил проблему, заставив файлы .pch проверять ее, но удаление папки PODS тоже должно работать, поскольку в этом случае Appcenter запустит команду установки модуля.

    Надеюсь, это кому-то поможет.

    Да, это можно устранить с помощью параметров / Yc, как указывали другие, но, скорее всего, вам не нужно прикасаться к нему, чтобы исправить это. Почему вы вообще получаете эту ошибку, не меняя никаких настроек? Возможно, вы «очистили» проект, а затем попытались скомпилировать один файл cpp. В этом случае вы получите эту ошибку, потому что заголовок прекомпилятора теперь отсутствует. Просто создайте весь проект (даже если он неудачный), а затем создайте любой отдельный файл cpp, и вы не получите эту ошибку.

    1. Щелкните правой кнопкой мыши проект и выберите пункт меню свойств.
    2. goto C / C ++ -> Предварительно скомпилированные заголовки
    3. Выберите «Не использовать предварительно скомпилированные заголовки»

    Убедитесь, что в вашем проекте есть xxxxx.cpp

    Скомпилируйте xxxxx.cpp с флагом / Yc ( Создать предварительно скомпилированный заголовок)
    (щелкните правой кнопкой мыши xxxxx.cpp -> свойства -> Предварительно скомпилированные заголовки -> создать )

    Скомпилируйте все остальные файлы с флагом / Yu ( Используйте предварительно скомпилированный заголовок)
    (щелкните правой кнопкой мыши проект -> свойства -> Предварительно скомпилированные заголовки -> использовать )

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

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

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

    В вашем случае кажется, что шаг 1 не выполняется. Файл-заглушка все еще присутствует? В вашем случае это, вероятно, будет xxxxx.cpp . Это должен быть файл, скомпилированный с помощью /Yc:xxxxx.pch , поскольку это флаг компилятора, указывающий, что это шаг 1 процесса PCH. Если присутствует xxxxx.cpp и является таким файлом-заглушкой, то, вероятно, отсутствует его параметр компилятора /Yc: .

    VS облажался (у меня 2019; (). Продолжайте и выберите «не использовать предварительно скомпилированные заголовки», как указывают другие ребята, затем откройте файл проекта (vcxproj) с помощью любого текстового редактора и удалите выделенные две записи в двух местах. Наслаждайтесь На самом деле, запись pch.h в файле vcxproj, которую вы видите ниже, вы всегда найдете в интерфейсах свойств VS.

    Источник

    Как исправить файл .pch, отсутствующий при сборке?

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

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

    ПРИМЕЧАНИЕ. Более поздние версии IDE могут использовать «pch» вместо «stdafx» в именах по умолчанию для связанных файлов. Может быть необходимо заменить pch на stdafx в инструкциях ниже. Я извиняюсь. Это не моя вина.

    1. Щелкните правой кнопкой мыши свой проект в обозревателе решений.
    2. Нажмите Свойства в нижней части раскрывающегося меню.
    3. В верхнем левом углу страницы свойств выберите «Все конфигурации» в раскрывающемся меню.
    4. Откройте дерево C / C ++ и выберите «Предварительно скомпилированные заголовки».
    5. Предварительно скомпилированный заголовок: выберите «Использовать» (/ Yu)
    6. Заполните поле «Файл скомпилированного заголовка». Стандарт это stdafx.h

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

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

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

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

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

    В вашем случае кажется, что шаг 1 не выполняется. Заглушка все еще присутствует? В вашем случае это, вероятно, будет xxxxx.cpp . Это должен быть файл, который скомпилирован /Yc:xxxxx.pch , так как это флаг компилятора, указывающий, что это шаг 1 процесса PCH. Если xxxxx.cpp он присутствует и является таким файлом-заглушкой, то, вероятно, ему не хватает /Yc: опции компилятора.

    Убедитесь, что у вас есть xxxxx.cpp в вашем проекте

    Скомпилируйте xxxxx.cpp с флагом / Yc ( Создать предварительно скомпилированный заголовок)
    (щелкните правой кнопкой мыши xxxxx.cpp -> Свойства -> Скомпилированные заголовки -> Создать )

    Скомпилируйте все остальные файлы с флагом / Yu ( Использовать предварительно скомпилированный заголовок)
    (щелкните правой кнопкой мыши на проекте -> Свойства -> Предварительно скомпилированные заголовки -> Использовать )

    Источник

    Как исправить.файл pch отсутствует в сборке?

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

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

    9 ответов:

    Примечание: более поздние версии IDE могут использовать «pch «вместо» stdafx » в именах по умолчанию для связанных файлов. Возможно, потребуется заменить PCH на stdafx в приведенных ниже инструкциях. Прошу прощения. Это не моя вина.

    1. Правой Кнопкой Мыши проект в обозревателе решений.
    2. Нажмите кнопку Свойства в нижней части раскрывающегося меню.
    3. в левом верхнем углу страницы свойств, выберите все конфигурации из раскрывающегося списка меню.
    4. откройте дерево C/C++ и выберите предварительно скомпилированные заголовки
    5. Предварительно Скомпилированный Заголовок: Выберите Использовать (/Yu)
    6. заполните поле предварительно скомпилированный файл заголовка. Стандарт-stdafx.h

    Нажмите Кнопку ОК

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

  • поместите файл с именем stdafx.cpp в проект. Поставить #include » stdafx.ч» В в довершение всего, и ничего больше.
  • щелкните правой кнопкой мыши на файл stdafx.cpp в обозревателе решений. выбрать Properties и все конфигурации снова, как в шаге 4 .
  • . но на этот раз выберите предварительно скомпилированный заголовок Создать (/Yc). это только привязка к одному файлу stdafx.СРР.
  • Put #include » stdafx.h » в самом верху всех ваших исходных файлов.
  • повезло 13. Скрестите пальцы и нажмите построить.

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

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

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

    в вашем случае, кажется, Шаг 1 не удается. Стаб-файл все еще присутствует? В вашем случае, это, вероятно, будет xxxxx.cpp . Это должен быть файл, который компилируется с /Yc:xxxxx.pch , так как это флаг компилятора, чтобы указать, что это шаг 1 процесса PCH. Если xxxxx.cpp присутствует, и такой тупиковый файл, то он, вероятно, отсутствует его /Yc: опции компилятора.

    убедитесь, что у вас есть xxxxx.cpp в проект

    Compile xxxxx.cpp С флагом /Yc (создать Предварительно Скомпилированный Заголовок)
    (щелкните правой кнопкой мыши на xxxxx.cpp — > свойства — > предварительно скомпилированные заголовки ->создать)

    Compile все остальные файлы С флагом /Yu (использовать Предварительно Скомпилированный Заголовок)
    (щелкните правой кнопкой мыши на проект — > свойства -> предварительно скомпилированные заголовки -> использовать)

    1. щелкните правой кнопкой мыши на проекте и выберите пункт меню Свойства
    2. goto C / C++ — > предварительно скомпилированные заголовки
    3. Выберите Не Использовать Предварительно Скомпилированные Заголовки

    да, его можно устранить с помощью параметров /Yc, как указывали другие, но, скорее всего, вам не нужно будет прикасаться к нему, чтобы исправить это. Почему вы получаете эту ошибку, в первую очередь, без изменения каких-либо настроек? Возможно, вы «очистили» проект и попытались скомпилировать один файл cpp. Вы получите эту ошибку в этом случае, потому что заголовок прекомпилятора теперь отсутствует. Просто постройте весь проект (даже если он неудачный), а затем создайте какой-либо один файл cpp, и вы этого не получите ошибка.

    Если все правильно, но эта ошибка присутствует, то нужно проверить следующий раздел ****.файл vcxproj:

    в моем случае это было неправильное имя конфигурации: только первое слово.

    Я знаю, что эта тема очень старая, но я занимался этим в VS2015 недавно, и то, что помогло, было удалено папки сборки и повторно построить его. Это может произойти из-за попытки закрыть программу или программу остановки/замораживания VS во время построения.

    Я искал файл PCH iOS, имеющий ту же проблему, если вы попали сюда, как и я, решение, которое я нашел, — это очистка производных данных; закройте симулятор(Ы), перейдите в Xcode prefs — > locations — > перейдите в путь к файлу производных данных, закройте xCode, удалите файлы в папке производных данных, повторно запустите и приветствуйте 🙂

    попробуйте построить > чистое решение, затем построить > построить решение. этой работает для меня.

    Источник

    Оцените статью