Динамическая Связанная библиотека (.DLL
) - это терминология, используемая Microsoft Windows. Shared Object (.so
) - терминология, используемая Unix и Linux.
Концептуально они одинаковы.
Относительно ваших фрагментов командЯ думаю, разница (и я только догадываюсь здесь, потому что вы не показали нам соответствующие части) заключается в том, как загружается библиотека.Существует «загрузка времени ссылки» , где библиотека связана с исполняемым файлом компоновщиком¹.И есть «загрузка во время выполнения» , где программа как бы «поглощает» динамическую / разделяемую библиотеку.
загрузка во время выполнения выполняется в Windows с LoadLibrary
(есть вариант …A
и …W
вариант) и в Unix / Linux с dlopen
(который доступен через libdl
, с которым связана эта библиотека -ldl
оператор link).
1: компоновщик - это программа, которая создает фактически исполняемый файл из промежуточных объектов, созданных на различных этапах компиляции.