Вообще зависимость от библиотек на программерском сленге называется dependency
В хорошем случае зависимости даже динамические можно посмотреть через gdb
genue debugger загружакшь прогу в отладчик и смотришь deps.
По нубский - тяп-ляп, ldd
(list dynamic dependencies) даёт информацию о статический загруженных библиотеках.
Добавлено спустя. Вот пример догрузки на самом простейшем паскаль варианте под винду (добавлено просто для понимания как это вообще работает)
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils, Windows;
// Данная функция динамический зависима от user32.dll
// Если ОС не сможет загрузить её динамический, то приложение даже не запустится.
// Это всё видит `ldd` в линуксе
// Тут есть жесткое правило для ос - внешняя user32dll по имени MessageBeep
function MessageBeep(uType: UINT): BOOL; stdcall; external 'user32.dll' name 'MessageBeep';
// А вот в этом варианте она даже не существует но догрузится после
// Это уже увидит отладчик. После выполнения операций с загрузкой SO файла
// По факту пофигу, есть-ли user32 в системе или нет, но приложение уже запущенно.
// И уже приложение решает, что делать с ошибкой если вдруг динамический, динамическая библиотека не загруженна.
type TMyFunc = function(uType: UINT): BOOL; stdcall;
var
hLib: DWORD;
ptrProc: TMyFunc;
begin
MessageBeep(0);
hLib := LoadLibrary('user32.dll');
ptrProc := GetProcAddress(hLib, 'MessageBeep');
ptrProc(0);
end.