Я знаю, что есть команда, которая перечисляет мне библиотеки и соответствующие версии, с которыми было связано программное обеспечение.
Что-то с ld или libtool?
Но я просто не могу вспомнить. Потратил некоторое время на Google, но не нашел ничего полезного.
Обновление
ldd <binary>
помогло бы на Linux, ( от @ Ernelli ), в то время как я обнаружил, что otool -L <binary>
делает что-то похожее на MacOS X.
linux
macos
shared-libraries
er4z0r
источник
источник
Ответы:
Попробуй ldd binary-exec
Пример:
источник
Чтобы найти то, что ему нужно:
ldd
как упоминалось в другом месте, покажет все прямые и косвенные библиотеки - все, что нужно во время выполнения. Это может быть не полный список, так как вы можете динамически открывать вещи с помощью dlopen (), но это должно работать в 99% случаев.ld и libtool используются во время компиляции / компоновки. Они бесполезны, когда у вас есть приложение.
РЕДАКТИРОВАТЬ Я вижу по последующим ответам, которые вы спрашивали о OSX, но я хочу добавить к своему ответу об инструментах Linux:
Одна вещь, которую я забыл упомянуть, довольно давно; Вы спрашивали о версиях. Ни тот,
ldd
ни другой неreadelf
ответят на вопрос «какая версия». Они сообщат вам имя файла библиотеки, которую вы ищете, и соглашение об именах может иметь некоторую информацию о версии, но это никак не навязывается. Символы могут быть версионными, и вам понадобится гораздо более низкий уровень,nm
чтобы увидеть их,источник
Другой способ - использовать objdump.
Это показывает все необходимые зависимости только для этого двоичного файла. Очень полезный.
источник