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

Gregor812
Сообщения: 6
Зарегистрирован: 04 апр 2016, 23:51

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

Сообщение Gregor812 »

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

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

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 952
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

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

Сообщение Бахурин Сергей »

Динамическая связь тоже имеет свои преимущества. Во первых, можно обновлять библиотеку без перекомпиляции основного приложения.

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

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

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 952
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

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

Сообщение Бахурин Сергей »

Лицензия LGPL не допускает статической линковки если приложение не распространяется под лицензией gpl. Динамическая линковка не ограничивается.

Brianvor
Сообщения: 1
Зарегистрирован: 30 май 2020, 13:27

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

Сообщение Brianvor »

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

Ответить