Когда полная сборка и когда частичная сборка?
Привет, я пытаюсь выяснить, когда требуется полная сборка и когда частичной сборки достаточно. Есть много статей, но я не могу найти конкретные ответы.
Ниже мои мысли
Полная сборка требуется, когда:
1.Изменить сборку зависимых модулей.
--- изменение варианта сборки или использование методов оптимизации.
2. Изменения в макете объекта:
--- Любые изменения в заголовочном файле, добавление и удаление новых методов в классе.
--- Изменение размера объекта путем добавления или удаления переменных или виртуальных функций.
--- Изменения выравнивания данных с использованием пакета Pragma.
3. Любые изменения в глобальных переменных
Частичная сборка достаточна, когда:
1. Любые изменения в логике, если они не изменяют указанный интерфейс.
2. изменить в переменной стека
1 ответ
В идеальном мире полная сборка никогда не требуется, потому что все инструменты сборки автоматически определяют, изменилась ли одна из их зависимостей.
Но это верно только в идеальном мире. Практически инструменты сборки написаны людьми и людьми
- делать ошибки, чтобы инструменты не учитывали все возможные изменения,
- ленивы, поэтому инструменты могут не учитывать любые изменения.
Для вас это означает, что вы должны иметь некоторый опыт работы со своими инструментами сборки. С хорошим написанным make-файлом может быть учтено все, и вам редко приходится делать полную сборку. Но в 21-м веке make-файл больше не является современным, и они очень скоро становятся сложными. Сегодняшние среды разработки неплохо справляются с поиском зависимостей, но для более крупных проектов у вас могут быть зависимости, которые трудно включить в концепцию среды разработки, и вы будете писать сценарий.
Так что нет реального ответа на ваш вопрос. На практике хорошо делать полную перестройку для каждого выпуска, тогда эту перестройку нужно сделать, нажав всего одну кнопку. И сделать частичную сборку для повседневной работы, так как никто не хочет ждать 2 часа, чтобы увидеть, является ли код компилируемым или нет. Но даже в повседневной работе полная перестройка иногда необходима, потому что компоновщик / компилятор /(ваш выбор инструмента здесь) не распознал даже простейшего изменения.