Когда полная сборка и когда частичная сборка?

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

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

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

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

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

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

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

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

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

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

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

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

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

1 ответ

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

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

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

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

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

Другие вопросы по тегам