Как определить, какая зависимость приведет к перестройке модуля компиляции C ++? - PullRequest
4 голосов
/ 21 апреля 2010

У меня есть старое C ++ приложение с глубоким графом #include. Изменения в любом заголовочном файле часто вызывают перекомпиляцию, казалось бы, не связанных исходных файлов.

Приложение построено с использованием файла решения Visual Studio 2005 (sln).

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

Есть ли другой инструмент, который может помочь?

ПРИМЕЧАНИЕ: я только ищу инструмент, который скажет мне, почему файл будет перестроен, а не какая-то ретроспективная магия, говорящая мне, почему он был перестроен.

Ответы [ 3 ]

2 голосов
/ 06 июля 2010

Если вы наберете подробность до подробного или выше (Инструменты> Параметры> Проект> Сборка или / v: подробный), то MSBuild будет записывать непосредственно перед запуском компилятора, какой именно заголовочный файл или исходный файл вызвал его запуск компилятор.

Это то, что вы просите?

Dan / MSBuild

1 голос
/ 21 апреля 2010

Существует утилита с именем makedepend . Он доступен на платформах Unix. В Window вы можете найти подобный скрипт на Perl здесь .

Я не думаю, что MSBUILD заботится о зависимости.

0 голосов
/ 21 апреля 2010

Возможно, вам нужно включить Finder (http://www.softpedia.com/progDownload/Include-Finder-Download-83403.html).

...