Получение зависимых модулей (общих объектов) для двоичного

StackOverflow https://stackoverflow.com/questions/2145854

  •  23-09-2019
  •  | 
  •  

Вопрос

У меня есть двоичный файл на Linux .. TCLSH8.4. Это зависит от определенных файлов tcl*.so.

  1. Есть ли способ получить эту информацию из самого двоичного файла?

  2. Файлы 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

Я надеюсь, что это помогает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top