Visual C ++ studio, перекомпилируя только измененные файлы - PullRequest
3 голосов
/ 11 октября 2009

У меня есть два dll-файла, созданные примерно 1500 cpp-файлами. Когда мне нужно отредактировать один, я обычно перекомпилирую все 1500 файлов с самого начала. Но я слышал, что есть способ заставить Visual Studio перекомпилировать только модификации, что займет намного меньше времени ... Как мне это сделать?

Ответы [ 3 ]

14 голосов
/ 11 октября 2009

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

  • Вы изменяете заголовок, и он был включен везде.
  • Вы нажимаете «перестроить», а не «строить».
  • Вы включили файл cpp.
  • Что-то не так с вашими проектами, вашим диском или вашим свиданием.

Это то, что я считаю уменьшением вероятности.

3 голосов
/ 11 октября 2009

Выберите измененные файлы, щелкните правой кнопкой мыши и скомпилируйте, затем он скомпилирует только измененные файлы и затем скомпилирует их. Сравнение занимает меньше времени, чтобы просто собрать весь проект. Не уверен насчет новых версий VS.net IDE .. Я думаю, что VS.net IDE позаботится только о модифицированных файлах ... если вы запускаете "build" только не "rebuild"

1 голос
/ 24 октября 2010

Найдите параметр «Предварительно скомпилированный заголовок» в меню «Свойства проекта» -> C / C ++ -> «Предварительно скомпилированные заголовки». Установите его для использования вместо создания. Это помогло мне. Ниже мое оригинальное сообщение, которое я хотел опубликовать здесь:)

Привет. У меня тоже такая же проблема с VS 2010. Я несколько раз запускал команду build, поэтому все проекты актуальны. Я добавил в одно решение .cpp и .h файл, содержащий пустой класс. Файл .cpp содержал только предварительно скомпилированный заголовок и файл .h, в то время как файл .h только #pragma один раз и 'class test {};'. После нескольких сборок (построение 4 потоков) я получаю все актуальные сообщения. Затем я изменил .h файл на 'class test {int a};' и после выбора построить все файлы, где перестроен.

Также я проверил минимальный параметр перекомпиляции и он включен. Вероятно, скомпилированный заголовок вызывает проблемы. Я проверю это сейчас: D

...