Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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 вводит меня в полный ступпор smile 

Автор: 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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)