Страница 1 из 1

DSPL в виде статической библиотеки

Добавлено: 05 апр 2016, 15:05
Gregor812
Всем привет! Мы с коллегой решили форкнуть DSPL на GitHub для изменения целевой сборки с .dll на .lib. Поясню, какие плюсы в этом имеются:
  1. 1) Проще контрибуция конечного софта, так как вместо нескольких файлов может поставляться только один бинарь.
  • 2) Гораздо проще портировать на другую платформу.
  • 3) В DLL собираются все функции, и они все будут идти в контрибуцию, даже если 80% из них не будет использоваться. В статике линкер лишнее уберет.
  • 4) Быстрее запуск приложения, так как будут отсуствовать подгрузка библиотеки в память и линковка адресов вызовов (т.е. в значение адреса функции в приложении нужно подставить адрес функции в библиотеке).
Понятно, что для PC всё это на сегодняшний день особого значения не имеет, но это важно для микроконтроллеров. Интересно мнение автора и сообщества

Ссылка на репозиторий https://github.com/emdc/dspl-static

Re: DSPL в виде статической библиотеки

Добавлено: 05 апр 2016, 23:13
Бахурин Сергей
Динамическая связь тоже имеет свои преимущества. Во первых, можно обновлять библиотеку без перекомпиляции основного приложения.

Но главное, вы должны иметь ввиду, что лицензия LGPL 3.0 допускает только динамическую связь приложения с библиотекой, если приложение распространяется под лицензией несовместимой с GPL. Библиотеку под лицензией LGPL 3.0 линковать статически можно только с приложениями, распространяемыми только под лицензией совместимыми с GPL.

Так что все программы контроллеров которые будут линковать dspl статически должны будут распространяться под GPL со всеми вытекающими.

Re: DSPL в виде статической библиотеки

Добавлено: 10 фев 2019, 21:55
Бахурин Сергей
Лицензия LGPL не допускает статической линковки если приложение не распространяется под лицензией gpl. Динамическая линковка не ограничивается.

DSPL в виде статической библиотеки

Добавлено: 31 май 2020, 08:20
Brianvor
если не секрет зачем собирать отдельные куски в статические библиотеки?
ну там если например libc еще можно как-то понять, он с компилятором вместе идёт, то вот модбас не проще в виде исходников подключать?
секунду на времени компиляции сэкономить?
а учитывая как зоопарк компиляторов переносимость на разные платформы там на ПК-то библиотеки собранные разными компиляторами тот еще геморрой, а для МК вообще мрак, так и то что компиляторы еще и довольно активно пилятся, то есть разные версии даже одного компилятора по генерируемому коду могут и отличаться, смысла иметь единожды собранную статическую библиотеку которую потом подключать к разным проектам особо не вижу.