Основные различия между динамической и статической компоновкой библиотек:
- При статической компоновке весь код объектов копируется из статической библиотеки в использующие их исполняемые файлы во время сборки. 1
- При динамической компоновке включаются только те сведения, которые позволяют операционной системе найти и загрузить библиотеку DLL, содержащую элемент данных или функцию, во время выполнения. 1
Преимущества динамической компоновки:
- Экономия памяти. 1 Многие процессы могут использовать библиотеку DLL совместно, одновременно обращаясь к одной доступной только для чтения копии её частей в памяти. 1
- Экономия места на диске и пропускной способности. 1 Несколько приложений могут совместно использовать одну копию библиотеки DLL на диске. 1
- Простота обслуживания и обновления. 1 При обновлении библиотек DLL использующие их приложения не нужно перекомпилировать или повторно компоновать. 1
Преимущества статической компоновки:
- Уменьшение количества зависимостей от DLL. 2 Программа становится более легко переносимой. 2
- В случае небольших программ также экономится место, так как нет необходимости тащить за собой DLL, большая часть функций которых не используется. 2
- Иногда в случае статической компоновки может быть сгенерирован более эффективный код. 2