2017-01-25 11 views
2

Я работаю над разбиением огромного проекта на небольшие части, создавая пакет (dpk) для каждой части и имея приложение, настроенное на «Использовать пакеты времени выполнения». У меня возникла проблема при связывании одного из этих пакетов, который использует другие пакеты. Это слишком долго для связи.Delphi Что происходит при связывании пакетов?

У меня создалось впечатление, что, когда пакет (A) требует другого пакета (B), эта зависимость разрешается только во время выполнения, но, по-видимому, это не так, потому что, если удаление (B) из "требует «раздел (A), (A) ссылается в обычное время, но в противном случае это занимает 30 минут или более.

Итак, мой вопрос: что именно происходит, когда Delphi связывает пакет, который требует других пакетов?

+0

Если вы не хотите использовать дополнительные модули плагинов, использование пакетов времени выполнения почти наверняка сделает вашу жизнь намного сложнее. –

+0

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

+0

Почему вы хотите разбить его. Это просто создает множество проблем. Какая польза? –

ответ

3

При связывании пакетов, времени выполнения или времени разработки, все зависимости в связанных объектах должны быть разрешены. Единственное отличие от пакетов времени выполнения заключается в том, что они загружены во время выполнения, поэтому они могут в конечном итоге уменьшить размер исполняемого файла (или набора исполняемых файлов), где используются общие элементы. Однако поведение связывания остается тем же, поэтому, если связывание является узким местом в вашей сборке, это не изменится, если вы переключитесь с использования DCU на пакеты времени исполнения.

Если соединение является узким местом в вашем приложении, то есть некоторые архитектурные стратегии рефакторинга, которые вы могли бы быть в состоянии использовать для упрощения сборки, но это широкая тема, выходящая за рамки этого ответа.