[gull] probleme librairies dynamiques

Marc Mongenet marc.mongenet at gmail.com
Fri Jul 15 15:58:04 CEST 2005


Le 14/07/05, Farid Moussaoui<moussaoui at romandie.com> a écrit :
> Bonsoir,
> 
> Un ami m'a envoye un executable qui requiert des librairies dynamiques
> (shared) qui sont sur la machine et dont le chemin est inclu dans
> LD_LIBRARY_PATH
> 
> Je ne sais pas comment la personne a compile son code mais un ldd
> de l'executable donne
> >:~/acis2flite> ldd acis2flite
>         linux-gate.so.1 =>  (0xffffe000)
>         /home/cgandrey/Soft/ACIS8.0/lib/linux_so/libkernel.so => not found
>         /home/cgandrey/Soft/ACIS8.0/lib/linux_so/libconstrct.so => not found
>         /home/cgandrey/Soft/ACIS8.0/lib/linux_so/libintersct.so => not found
>         /home/cgandrey/Soft/ACIS8.0/lib/linux_so/libfaceter.so => not found
>         /home/cgandrey/Soft/ACIS8.0/lib/linux_so/liblawutil.so => not found
>         /home/cgandrey/Soft/ACIS8.0/lib/linux_so/libbaseutil.so => not found
>         /home/cgandrey/Soft/ACIS8.0/lib/linux_so/libpart.so => not found
>         libg++-libc6.2-2.so.3 => /usr/lib/libg++-libc6.2-2.so.3 (0x4001a000)
>         libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3
> (0x40066000)
>         libm.so.6 => /lib/tls/libm.so.6 (0x400c6000)
>         libc.so.6 => /lib/tls/libc.so.6 (0x400e8000)
>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
> 
> Comme indique, les libraires *.so sont toutes dans LD_LIBRARY_PATH.
> 
> Comment faire en sorte que l'executable trouve les librairies dynamiques?
> 
> A savoir que "cgandrey" est le login de la personne qui m'a envoye l'executable.
> 
> Merci.

Les noms des bibliothèques manquantes ont un chemin absolu.
Il semble donc logique que LD_LIBRARY_PATH ne soit pas utilisé.
Un 'man ld.so' n'indique rien à propos des chemins absolus, en
revanche 'man dlopen' (ou le HOWTO donné par Daniel) indiquent
que si on donne un chemin absolu à dlopen() alors les divers
chemins ne sont pas recherchés. Logiquement ld.so fonctionne
comme (voire avec) dlopen().

Pour résoudre le problème... demander de nouveaux exécutables.
Créer un répertoire /home/cgandrey/Soft/ACIS8.0/lib/linux_so/
pour y mettre les bibliothèques devrait aussi fonctionner.

Marc Mongenet



More information about the gull mailing list