Это действительно зависит от того, что вы хотите сделать, и от того, как вы развертываете свою библиотеку.
shared / dynamici c библиотеки (библиотеки DLL на windows) имеют ряд преимуществ перед stati c библиотеками
- Они могут распространяться извне из приложения, позволяя вашему бинарному приложению быть меньше
- Они могут обновляться внешне для приложения
- Они немного более эффективны, чем код выполняется только при необходимости, а не в комплекте с исполняемым файлом
Конечно, у них тоже есть несколько недостатков
- Они могут распространяться извне из вашего приложения и обновляться извне - разрешить атаки с использованием dll-инъекций
- Попытка освободить динамические c библиотеки с помощью исполняемого файла - одна из самых болезненных и ужасных вещей (особенно на windows, где отсутствует RPATH)
Вы можете иметь для использования DLL, в зависимости от лицензирования вашей внешней библиотеки, Qt для экзамена Во многих случаях требуется соединение с общей библиотекой (не во всех).
Стандартным соглашением обычно является предоставление совместно используемой и stati c версий вашей библиотеки, при этом совместно используемая версия полностью связывается с другими общими библиотеками, а версия stati c представляет собой ar
stati c. (включает в себя все зависимости). Затем вариант совместно используемой библиотеки предлагает инструкции по компоновке (т. Е. Файл .pc
(pkgconfig)), в котором указываются версии других библиотек для ссылки (т. Е. v1.1
из x.dll
) для успешной компиляции / компоновки.