Когда полная сборка и когда частичная сборка? - PullRequest
0 голосов
/ 14 декабря 2011

Привет. Я пытаюсь выяснить, когда требуется полная сборка и когда частичной сборки достаточно. Есть много статей, но я не могу найти конкретные ответы.

Ниже мои мысли

Полная сборка требуется, когда:

1.Изменить сборку зависимых модулей.

--- изменение опции сборки или использование методов оптимизации.

2. Изменения в макете объекта:

--- Любые изменения в файле заголовка, добавление и удаление новых методов в классе.

--- Изменение размера объекта путем добавления или удаления переменных или виртуальных функций.

--- Изменения выравнивания данных с использованием пакета pragma.

3. Любые изменения в глобальных переменных

Частичная сборка достаточна, когда:

1. Любые изменения в логике, если они не изменяют указанный интерфейс.

2. изменение в переменной стека

1 Ответ

1 голос
/ 14 декабря 2011

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

Но это верно только в идеальном мире. Практически построенные инструменты написаны людьми и людьми

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

Для вас это означает, что вы должны иметь некоторый опыт работы со своими инструментами сборки. С хорошим написанным make-файлом может быть учтено все, и вам редко приходится делать полную сборку. Но в 21-м веке make-файл больше не является современным, и они очень скоро становятся сложными. Сегодняшние среды разработки неплохо справляются с поиском зависимостей, но для более крупных проектов у вас могут быть зависимости, которые сложно включить в концепцию среды разработки, и вы напишете сценарий.

Так что нет реального ответа на ваш вопрос. На практике хорошо делать полную перестройку для каждого выпуска, тогда эту перестройку следует делать, нажав всего одну кнопку. И сделать частичную сборку для повседневной работы, так как никто не хочет ждать 2 часа, чтобы увидеть, является ли код компилируемым или нет. Но даже в повседневной работе полная перестройка иногда необходима, потому что компоновщик / компилятор / (ваш выбор инструмента здесь) не распознал даже простейшего изменения.

...