Получение зависимых модулей (общих объектов) для двоичного
-
23-09-2019 - |
Вопрос
У меня есть двоичный файл на Linux .. TCLSH8.4. Это зависит от определенных файлов tcl*.so.
Есть ли способ получить эту информацию из самого двоичного файла?
Файлы TCL*.SO, от которых зависит двоичный TCLSH8.4, находится в каком -то другом каталоге с ограниченным разрешением. Что я должен сделать с двоичным файлом, чтобы использовать одни и те же файлы.
Будет ли только копировать oced .so файлы в том же месте?
Решение
Использовать ldd
для этого.
Копирование общих объектов не будет работать, так как Linux Loader ищет только общие объекты в каталогах, указанных в /etc/ld.so.conf
. Анкет Вам нужно использовать $LD_LIBRARY_PATH
Чтобы сказать погрузчику, где найти дополнительные общие объекты.
Другие советы
Чтобы увидеть зависимости динамического файла. ldd
командование Чтобы получить информацию о исполняемом файле, проверьте readelf
командование
Если вам нужно проверить зависимости нескольких файлов. SO, вы можете использовать следующий скрипт:
#!/bin/bash
# dependencies.sh
# Needs to specify the path to check for .so dependencies
if [ $# -ne 1 ]
then
echo 'You need to specify the path'
exit 0
fi
path=$1
for file in "$(find $path -name '*.so')"
do
ldd $file
done
exit 0
Я надеюсь, что это помогает.