Maison > développement back-end > C++ > le corps du texte

Comment contrôler la préférence de chemin de bibliothèque dans C Linking ?

Barbara Streisand
Libérer: 2024-10-24 02:52:29
original
612 Les gens l'ont consulté

How to Control Library Path Preference in C   Linking?

Spécifier la préférence de chemin de bibliothèque dans la liaison C

Lors de la liaison d'un programme C à des bibliothèques externes, contrôler la préférence pour des chemins de bibliothèque spécifiques peut être difficile . Par exemple, si vous avez une bibliothèque locale nommée libfoo.so.0 dans /my/dir mais qu'une autre bibliothèque du même nom réside dans /usr/local/lib, l'éditeur de liens peut donner la priorité à cette dernière.

Solution 1 : utilisez LD_LIBRARY_PATH

La solution la plus simple consiste à ajouter le chemin où réside votre nouvelle bibliothèque à la variable d'environnement LD_LIBRARY_PATH. Au moment de l'exécution, votre programme recherchera ce chemin avant les emplacements standard des bibliothèques. Cependant, il convient de noter les implications potentielles en matière de sécurité et de performances associées à l'utilisation de LD_LIBRARY_PATH.

Solution 2 : utilisez l'option -Wl,-rpath

Vous pouvez également utiliser l'option du compilateur -Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH) via gcc pour demander à l'éditeur de liens d'utiliser le chemin de recherche de la bibliothèque d'exécution au lieu des répertoires standard. Cette option peut être utilisée pour une solution temporaire ou, si vous préférez, vous pouvez modifier définitivement le chemin de recherche de bibliothèque par défaut de votre système.

Vérification des informations sur la bibliothèque

Pour vérifier les bibliothèques dont votre éditeur de liens est conscient, vous pouvez utiliser la commande :

<code class="bash">/sbin/ldconfig -p | grep libpthread</code>
Copier après la connexion

De même, pour inspecter les bibliothèques que votre application utilise, utilisez :

<code class="bash">ldd foo</code>
Copier après la connexion

En suivant ces étapes, vous pouvez effectivement spécifier la préférence pour les chemins de bibliothèque pendant le processus de liaison dans vos programmes C.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!