При использовании предварительно скомпилированных заголовков изменения файла заголовка не обнаруживаются, ожидаете? - PullRequest
3 голосов
/ 02 ноября 2010

Visual Studio C ++ lib проект Проект настроен на использование предварительно скомпилированных заголовков stdafx.cpp настроен на создание предварительно скомпилированного заголовка

У меня есть заголовочный файл, MyClass.h Если я соберу, то внесу изменения в MyClass.h, которые не будут скомпилированы, компиляция все равно будет успешной. Если я сделаю перестройку или внесу изменения в файл cpp, содержащий «MyClass.h», то компиляция завершится неудачно, как и ожидалось.

Ожидается ли это, потому что я использую предварительно скомпилированные заголовки? Есть ли способ исправить это так, чтобы 2-й buid принимал изменения заголовка, не отключая предварительно скомпилированные заголовки?

Ответы [ 4 ]

3 голосов
/ 02 ноября 2010

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

2 голосов
/ 03 ноября 2010

В свойствах проекта установите для параметра «Включить минимальное перестроение» значение Нет

0 голосов
/ 02 ноября 2010

VisualStudio часто бывает чертовски глупым из-за изменений.Это может пойти в любую сторону, но обычно это происходит так, как вы столкнулись.

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

Это, конечно, все еще может быть вашей собственной чертовой ошибкой, но VS, на самом деле, заведомо глуп.Иногда полная перестройка решит проблему навсегда, до следующего раза.В других случаях вы каким-то образом скрывали файл проекта, и, надеюсь, вы можете вернуться к оригиналу (например, восстановить исходный сервер).«Отменить» чаще всего не отменяет этот тип fubar.

Я отмечал это несколько раз, не обязательно быть заголовком, который находится в предварительно скомпилированном заголовке.Это выглядит несколько случайным, но есть еще одна распространенная корреляция: заголовок полон шаблонов.VS - просто запаздывающие шаблоны.

0 голосов
/ 02 ноября 2010

Вы уверены, что stdafx.cpp содержит соответствующий заголовок?

...