Question

J'ai un fichier binaire sur Linux. TCLSH8.4. Cela dépend de certains fichiers TCL * .so.

  1. Existe-t-il un moyen d'obtenir ces informations à partir du fichier binaire lui-même?

  2. Le TCL * .SO se fichait sur lequel le TCLSH8.4 binaire dépend dans un autre répertoire ayant une autorisation limitée. Que dois-je faire au fichier binaire afin d'utiliser les mêmes fichiers .so d'un autre emplacement?

Est-ce que la copie des fichiers .so Oved dans le même emplacement fonctionnerait-il?

Était-ce utile?

La solution

Utilisation ldd pour ça.

La copie des objets partagés ne fonctionnerait pas car le chargeur Linux ne recherche que des objets partagés dans les répertoires spécifiés dans /etc/ld.so.conf. Vous auriez besoin d'utiliser $LD_LIBRARY_PATH Pour dire au chargeur où trouver des objets partagés supplémentaires.

Autres conseils

Pour voir les dépendances du fichier dynamique .so, vous pouvez utiliser le ldd commande. Pour obtenir des informations sur le fichier exécutable, vérifiez le readelf commande.

Si vous devez vérifier les dépendances de plusieurs fichiers .so, vous pouvez utiliser le script suivant:

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

J'espère que ça aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top