Frage

Ich habe eine binäre Datei unter Linux .. Tclsh8.4. Es hängt von bestimmten TCL*.so -Dateien ab.

  1. Gibt es eine Möglichkeit, diese Informationen aus der Binärdatei selbst zu erhalten?

  2. Die TCL*.SO -Dateien, von denen der binäre TCLSH8.4 in einem anderen Verzeichnis mit begrenzter Genehmigung abhängt. Was soll ich mit der Binärdatei tun, um die gleichen .so -Dateien von einem anderen Ort aus zu verwenden?

Würde das Kopieren von Dateien am selben Ort nur funktionieren?

War es hilfreich?

Lösung

Verwenden ldd dafür.

Das Kopieren der gemeinsam genutzten Objekte würde nicht funktionieren /etc/ld.so.conf. Sie müssten verwenden $LD_LIBRARY_PATH Um dem Lader mitzuteilen, wo er zusätzliche gemeinsame Objekte findet.

Andere Tipps

Um die Abhängigkeiten der dynamischen .so -Datei zu sehen, können Sie die verwenden ldd Befehl. Um Informationen über die ausführbare Datei zu erhalten, überprüfen Sie die readelf Befehl.

Wenn Sie die Abhängigkeiten mehrerer .so -Dateien überprüfen müssen, können Sie das nächste Skript verwenden:

#!/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

Ich hoffe, es hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top