2009-10-11 6 views
3

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

+1

не визуальная студия делает это по ошибке, если вы нажмете «построить»? – stijn

+0

нет, он просто перекомпилирует каждый файл, и мне нужно долго ждать –

+1

вы уверены, что используете 'build', а не 'rebuild all'? Я уверен, что если вы только измените один исходный файл (так что не заголовок, который включен всеми исходными файлами), а только компилирует этот файл, а затем выполняет привязку. Или, возможно, есть настройка проекта, о которой я не знаю, завершите rebuild .. – stijn

ответ

14

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

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

Это то, что я считаю уменьшающимся вероятностным порядком.

3

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

1

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

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

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

Смежные вопросы