Вопросы к Поиску с Алисой
Основное отличие типов библиотек STATIC и SHARED в CMake заключается в способе включения кода в исполняемые файлы. matgomes.com iamsorush.com
STATIC-библиотеки — это собрание объектных файлов, которые включаются в исполняемые файлы напрямую. matgomes.com iamsorush.com На финальных этапах сборки проекта такие библиотеки связываются в исполняемые файлы, и скомпилированный машинный код становится доступен в их составе. blog.shaduri.dev Обычно файлы статических библиотек имеют расширения .lib (Windows) или .a (Linux, MinGW). blog.shaduri.dev
SHARED-библиотеки (также известные как динамические) — это файлы, которые загружаются во время выполнения исполняемого файла. blog.shaduri.dev iamsorush.com Код не включается в финальный исполняемый файл, вместо этого он содержит ссылки на динамическую библиотеку. iamsorush.com Одно из преимуществ таких библиотек — меньшее потребление памяти и диска. blog.shaduri.dev Если несколько исполняемых файлов используют одну и ту же динамическую библиотеку, то на диске и в системе памяти будет только одна копия. blog.shaduri.dev Обычно файлы динамических библиотек имеют расширения .dll (Windows), .so (Linux) или .dylib (macOS). blog.shaduri.dev
Таким образом, статические библиотеки проще в развёртывании, но увеличивают размер файла, а динамические библиотеки уменьшают размер исполняемого файла, но могут вызывать проблемы с зависимостями. iamsorush.com