| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > лечение C1852 |
| Автор: 17dufa 7.7.2009, 14:53 |
| Добрый день. взял на работе новый проект и обнаружил у него интересную особенность: при обычном Build он выдает ошибку C1852 (http://msdn.microsoft.com/en-us/library/aa229148(VS.60).aspx - ошибка прекомпайлд хедера) (от меня до сих пор ускользает ее смысл) а при Rebuild All все проходит. и так на каждое изменение. "int i;" добавил - пересобирай весь проект, удовольствие ниже среднего. Не подскажите, как это лечиться? |
| Автор: Earnest 7.7.2009, 15:05 |
| На каждое изменение чего? Скорее всего, неправильно определен precompiled header. Посмотри в MSDN описание этой ошибки, тем есть возможные причины. Может, натолкнет на мысль. |
| Автор: 17dufa 7.7.2009, 15:14 |
| на каждое изменение в проекте, приводящее к необходимости компиляции. достаточно в cpp пустую строчку добавить. описание msdn вводит меня в полный ступпор |
| Автор: Earnest 7.7.2009, 15:29 |
| Ну тогда создай пустой MFC-проект с прекомпилированными заголовками. И сравни настройки файлов, связанные с ними. Вкратце, stdafx.cpp должен иметь флаг CreatePrecompiler Header, а дальше в его свойствах должно быть указано Use PCH through file = stdafx.h. А все остальные файлы должны иметь флаг "Use precompiled header" и тот же самый Use PCH through file = stdafx.h. В принципе, stdafx.h \ stdafx.cpp - имена произвольные, могут быть и другие. В результате компиляции stdafx.cpp в каталоге проекта должен создаваться файл с именем <проект>.pch. Но это тоже по-умолчанию, в свойствах precompiled header можно поменять и это. Проверь также, может какая еще зараза создает свой вариант фала с таким именем, который вовсе не precompiled header или как-то его портит. |
| Автор: 17dufa 7.7.2009, 15:55 |
| Earnest, просто спаситель. у пары файлов стояло "Automatic use of precompiled header", переставил на "Use precompiled header" и все стало номана. |
| Автор: serg405 7.7.2009, 16:38 |
| А можно попробовать запускать проек через меню вот так Build -->ProfileGuideOptimisation-->Run Instrumented/Optimisateed Application |