меняется с `stdafx.h` на` pch.h`

Я клонирую репозиторий, решение C ++ с 3 проектами, консольное приложение .exe проект DLL .dll и юнит тест .dll, Я не уверен, с какой версией VS или компилятором он был собран или создан.

построение решения на моей машине было ошибкой

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

я создал pch.h а также pch.cpp согласно другому решению в каждом проекте.

изменил properties->c/c++->precompiled headers каждого проекта

  • precompiled header = Create (/Yc)
  • precompiled header file = pch.h
  • precompiled header output file = $(IntDir)$(TargetName).pch

очистил решение и удалил все Debug папки

теперь строит решение бросков

фатальная ошибка C1010: неожиданный конец файла при поиске предварительно скомпилированного заголовка. Вы подделали
t добавить ‘#include «stdafx.h» к вашему источнику?

  • Также это была ошибка, которую показывали конвейеры Azure. так, чтобы быть близко к процессу сборки трубопровода я использую msbuild.exe из командной строки VS. Странная часть для меня заключается в том, что щелчок правой кнопкой мыши VC ++ на решении и сборке не отображает никаких ошибок и сборок проекта, а после этого msbuild.exe также перестраивается без ошибок. Но удаление всего из папок отладки и повторная попытка msbuild.exe снова показывает эти ошибки!

Как я должен заставить все проекты в решении использовать stdafx.h или же pch.h

0

Решение

Предварительно скомпилированные заголовки — это функция, позволяющая ускорить процесс сборки, поэтому, если у вас возникли проблемы со сборкой, вы всегда можете отключить предварительно скомпилированные заголовки (выберите «Не использовать предварительно скомпилированные заголовки» в настройках проекта для всего проекта), и сборка должна работать ,

Если вы хотите сделать сборку проекта с предварительно скомпилированными заголовками, у вас должна быть опция «Создать» только для одного исходного файла (pch.cpp или stdafx.cpp), который содержит только оператор включения для предварительно скомпилированного заголовочного файла. Все остальные исходные файлы должны иметь предварительно выбранный заголовок «use». Также они должны иметь правильный оператор #include для вашего предварительно скомпилированного заголовка в качестве первой строки без комментариев в файле.

Идея состоит в том, что компилятор создает дамп своего внутреннего состояния при обработке предварительно скомпилированного оператора заголовка #include в файле с установленной опцией ‘create’.
Затем он загружает этот дамп, когда видит соответствующее включение в файлах с включенной опцией ‘use’. Загрузка дампа может быть намного быстрее, чем, например, Разбор через windows.h. Поэтому вы должны поместить любые часто используемые операторы большого файла заголовка #include в файл pch.h или stdafx.h.

Полученные вами сообщения об ошибках генерируются, если в файле .cpp включена опция ‘use’, но инструкция #include с именем файла, заданным в опции ‘precompiled header file’ ‘, не найдена.

0

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

Других решений пока нет …

По вопросам рекламы [email protected]