Способ подключения меняет и картину, и трудоёмкость. При динамическом подключении библиотека остаётся отдельным файлом рядом с программой — её видно, версию можно определить. При статическом она вкомпилирована внутрь, отдельного файла нет.
Во втором случае состав восстанавливают по самой программе: библиотеки опознают по характерным участкам машинного кода, по строкам и служебным сведениям о версии. Метод рабочий, но не исчерпывающий — эксперт указывает, что опознано надёжно, а что предположительно.
Дополнительные источники — файлы описания сборки и содержимое репозитория. Единого файла, закрепляющего версии всех зависимостей, в C++ долго не было; сейчас его дают менеджеры пакетов Conan и vcpkg, но пользуются ими не все проекты, и это ограничение тоже называют.