Я клонирую репозиторий, решение 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» к вашему источнику?
msbuild.exe
из командной строки VS. Странная часть для меня заключается в том, что щелчок правой кнопкой мыши VC ++ на решении и сборке не отображает никаких ошибок и сборок проекта, а после этого msbuild.exe также перестраивается без ошибок. Но удаление всего из папок отладки и повторная попытка msbuild.exe снова показывает эти ошибки! Как я должен заставить все проекты в решении использовать stdafx.h
или же pch.h
Предварительно скомпилированные заголовки — это функция, позволяющая ускорить процесс сборки, поэтому, если у вас возникли проблемы со сборкой, вы всегда можете отключить предварительно скомпилированные заголовки (выберите «Не использовать предварительно скомпилированные заголовки» в настройках проекта для всего проекта), и сборка должна работать ,
Если вы хотите сделать сборку проекта с предварительно скомпилированными заголовками, у вас должна быть опция «Создать» только для одного исходного файла (pch.cpp или stdafx.cpp), который содержит только оператор включения для предварительно скомпилированного заголовочного файла. Все остальные исходные файлы должны иметь предварительно выбранный заголовок «use». Также они должны иметь правильный оператор #include для вашего предварительно скомпилированного заголовка в качестве первой строки без комментариев в файле.
Идея состоит в том, что компилятор создает дамп своего внутреннего состояния при обработке предварительно скомпилированного оператора заголовка #include в файле с установленной опцией ‘create’.
Затем он загружает этот дамп, когда видит соответствующее включение в файлах с включенной опцией ‘use’. Загрузка дампа может быть намного быстрее, чем, например, Разбор через windows.h. Поэтому вы должны поместить любые часто используемые операторы большого файла заголовка #include в файл pch.h или stdafx.h.
Полученные вами сообщения об ошибках генерируются, если в файле .cpp включена опция ‘use’, но инструкция #include с именем файла, заданным в опции ‘precompiled header file’ ‘, не найдена.
Других решений пока нет …