Подтвердить что ты не робот

Предварительно скомпилированные заголовки с смешанными C и С++

Я использую предварительно скомпилированные заголовки в моем проекте в C, но мы интегрируем файл .CPP в проект.

Здесь ошибка:

Error   1   fatal error C1853: 'Debug\MuffinFactory.pch' precompiled header
file is from a previous version of the compiler, or the precompiled header is C++
 and you are using it from C (or vice versa)    
c:\users\blake\desktop\projects\muffinfactory\source\main.cpp   1

Нам нужен только один .CPP, скомпилированный в нашем проекте, но нам действительно нужен предварительно скомпилированный заголовок для сохранения времени компиляции (Windows.h и более).

Как мне организовать проект для этого?

4b9b3361

Ответ 1

Поэтому не используйте предварительно скомпилированные заголовки для этого единственного файла!

Будучи файлом .cpp, он будет иметь разные параметры компиляции.

Ответ 2

Возможно, вы сможете создать в своем проекте два предварительно скомпилированных заголовка. В каждом исходном файле есть свойство, определяющее, будет ли он использовать предварительно скомпилированный заголовок или сгенерировать предварительно скомпилированный заголовок - попробуйте установить два разных источника для генерации заголовка.

Ответ 3

Попробуйте создать отдельный предварительно скомпилированный заголовочный файл С++ (скажем, MuffinFactoryCpp.h, который является копией другого). Посмотрите на параметры проекта в разделе "Предварительно скомпилированные заголовки" и используйте этот новый заголовочный файл в качестве предварительно скомпилированного заголовка для исходного файла С++.

Ответ 4

Я просто искал ошибку здесь и нашел эту ветку. Однако, после проб и ошибок, я обнаружил, что проблема в том, что у меня не было всех файлов, сохраненных в последнее время. Похоже, что Visual Studio немного заинтригован в отношении сохранения дат файлов, которые прилагаются вместе.

Я обошел Ctrl + S во всех исходных файлах и исправил проблему.

Ответ 5

Зуум Ответ

Not using precompiled headers

Извиняюсь перед Зууумом за столь вопиющий срыв его ответа, но спустя 7 лет он все еще похоронен как комментарий. Бо Перрсон говорит нам, что делать

Так что не используйте предварительно скомпилированные заголовки для этого файла!
В любом случае у него будут отдельные параметры компиляции.

и Зууум говорит нам, как

Дополнительная информация: выберите файл, который вы не хотите использовать "Предварительно скомпилированный заголовок" в обозревателе решений
Правый клик
В разделе "Предварительно скомпилированные заголовки" выберите "Не использовать предварительно скомпилированные заголовки".
- Zuuum 19 февраля '12 в 18:34

Я сделал крошечные правки - это не прямые цитаты. Причина моих изменений в том, что вы можете исключить использование файла C или C++ из предварительно скомпилированных заголовков для конкретного случая. Бо предполагает C++ как прямой ответ на вопрос. Zuuum предполагает C, и это дело для меня и на моей иллюстрации. Это может быть на практике.

Понятно, но досадно, что расположение опций в меню меняется от одного выпуска Visual Studio к другому, но вот расположение пункта меню в моей текущей Visual Studio (2019).