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



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



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



Error   1   fatal error C1083: Cannot open precompiled header file: 'Debugxxxxx.pch': No such file or directory
1927   9  

9 ответов:

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

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

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

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

повезло 13. Скрестите пальцы и нажмите построить.

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

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

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

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

исправления:

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

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

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

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

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

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

<ClCompile Include="stdafx.cpp">
  <PrecompiledHeader Condition=

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

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

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

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

Comments

    Ничего не найдено.