Разница между статическими и динамическими библиотеками в CMake заключается в способе включения кода в программу. 13
Статическая библиотека — это набор объектных файлов, которые объединены в один архив. 1 Код из такой библиотеки включается в исполняемый файл во время компиляции и становится его частью. 3 К преимуществам статических библиотек относят быстрое выполнение и отсутствие внешних зависимостей во время работы. 1 Однако у них есть и недостатки: больший размер исполняемого файла и необходимость перекомпиляции при обновлении библиотеки. 1
Динамическая библиотека — это общая библиотека, которая загружается во время работы. 1 Код из неё не включается в исполняемый файл, а сам файл содержит только ссылки на динамическую библиотеку. 1 К плюсам динамических библиотек относят меньший размер исполняемого файла и простоту обновлений (достаточно заменить файл с расширением .so или .dll). 1 Однако у них есть и минус: небольшие затраты во время работы из-за динамической связи. 1
На Windows статическая библиотека заканчивается расширением .lib, динамическая — расширением .dll. 3 На Linux статическая библиотека заканчивается расширением .a, динамическая — расширением .so. 23