ошибка C1854: невозможно перезаписать информацию, сформированную при создании прекомпилированного заголовка в объектном файле

foo.cpp(33918) : fatal error C1854: cannot overwrite information formed 
during creation of the precompiled header in object file: 'c:\somepath\foo.obj'

Консультация MSDN об этом дает мне следующую информацию:

Вы указали параметр /Yu (использовать предварительно скомпилированный заголовок) после указания параметра /Yc (создать предварительно скомпилированный заголовок) для того же файла. Некоторые объявления (например, объявления, включающие __declspec dllexport) делают это недействительным.

В этом случае мы используем dllexport и предварительно скомпилированные заголовки. Кто-нибудь сталкивался с этим раньше и знает обходной путь? Любой вклад, чтобы пролить свет на эту проблему, очень ценится.

Спасибо


person ralphtheninja    schedule 03.06.2009    source источник


Ответы (3)


Я думаю, вы можете найти ответ здесь: http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/b3aa10fa-141b-4a03-934c-7e463f92b2a5/

По сути, вам нужно установить для файла stdafx.cpp значение «Создать предварительно скомпилированные заголовки», а для всех остальных файлов .cpp — «Использовать предварительно скомпилированные заголовки».

person cspirz    schedule 03.06.2009
comment
Рекомендуется очистить решение после изменения параметров. - person nergeia; 28.09.2013
comment
Правильно ли я понимаю: диалоговое окно параметров, похожее на параметры проекта, на самом деле не является параметрами проекта, а является параметрами исходного файла, который я выбрал в данный момент? - person Thomas Weller; 16.12.2020

У меня тоже была эта пробема.

Убедитесь, что выходной файл заголовка прекомпилятора находится в правильном месте. На самом деле мой был выведен в нужное место, но были проблемы с его чтением только потому, что внутри пути был небольшой артефакт.

person Tony    schedule 28.12.2010

Мое решение состояло в том, чтобы тщательно перепроверить все предварительно скомпилированные настройки заголовков не только в проекте .exe, но и во всех проектах dll, а также воссоздать все заголовки. После этого ошибка пропала при компиляции .exe.

person user3699614    schedule 15.01.2019