Questions marquées «dynamic-linking»

En informatique, une liaison dynamique est le processus d'un système d'exploitation (OS) qui charge (copie du stockage persistant vers la RAM) et lie (remplit les tables de saut et déplace les pointeurs) les bibliothèques partagées nécessaires à un exécutable au moment de l'exécution, c'est-à-dire quand il est exécuté.

4
Comment fonctionnent les numéros SO (objets partagés)?
Je suis conscient que les objets partagés sous Linux utilisent "so numbers", à savoir que différentes versions d'un objet partagé ont des extensions différentes, par exemple: example.so.1 example.so.2 Je comprends que l’idée est d’avoir deux fichiers distincts, de sorte que deux versions d’une bibliothèque puissent exister sur un système (par …

4
Où les exécutables recherchent-ils des objets partagés au moment de l'exécution?
Je comprends comment définir des objets partagés au moment de la liaison / compilation. Cependant, je me demande toujours comment les exécutables recherchent l’objet partagé ( *.sobibliothèques) au moment de l’exécution. Par exemple, mon application a.outappelle des fonctions définies dans la lib.sobibliothèque. Après la compilation, je passe lib.soà un nouveau …







1
Pourquoi les systèmes Unix / Linux ne parcourent-ils pas les répertoires jusqu'à ce qu'ils trouvent la version requise d'une bibliothèque liée?
J'ai un exécutable binaire nommé "alpha" qui nécessite une bibliothèque liée (libz.so.1.2.7) qui est placée à /home/username/myproduct/lib/libz.so.1.2.7 J'exporte le même vers mon instance de terminal avant de générer mon exécutable binaire en exécutant la commande suivante. export LD_LIBRARY_PATH=/home/username/myproduct/lib/:$LD_LIBRARY_PATH Maintenant, quand je lance une autre application "bravo" qui nécessite la même …

9
Problème pour lancer java sur Debian: "erreur lors du chargement des bibliothèques partagées: libjli.so"
J'essaie de lancer java: $ java -version java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory $ ldd /usr/lib/jvm/java-6-openjdk/jre/bin/java linux-gate.so.1 => (0xb779f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7780000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7767000) libjli.so => /usr/lib/jvm/java-6-openjdk/jre/bin/../lib/i386/jli/libjli.so (0xb7762000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb775e000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7603000) …

1
Installer deux glibc à côté dans Debian / Ubuntu
Est-il possible d'installer et d'utiliser deux versions de glibc différentes sur la même machine. Lorsqu'une seule version est utilisée uniquement pour exécuter un logiciel hérité, qui repose sur d'anciens binaires glibc? Est-il possible de le faire à l'aide du gestionnaire de packages (quelque chose comme "installer ce package et ses …

3
Découvrez si la bibliothèque est sur le chemin
En supposant que je veux tester si une bibliothèque est installée et utilisable par un programme. Je peux utiliser ldconfig -p | grep mylibpour savoir s'il est installé sur le système. mais que se passe-t-il si la bibliothèque n'est connue que via le paramètre LD_LIBRARY_PATH? Dans ce cas, le programme …


2
Puis-je utiliser mon propre ld.so.cache?
ldconfig a deux options intéressantes: -f conf Use conf instead of /etc/ld.so.conf. -C cache Use cache instead of /etc/ld.so.cache. J'ai essayé de copier /etc/ld.so.confdans mon propre répertoire personnel et l'ai modifié pour inclure des chemins vers mes bibliothèques locales, par exemple, /home/syockit/local/usr/libetc. ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache et par la …


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.