Maison > développement back-end > C++ > Pourquoi mon éditeur de liens ne trouve-t-il pas « -l » ?

Pourquoi mon éditeur de liens ne trouve-t-il pas « -l » ?

Mary-Kate Olsen
Libérer: 2025-01-03 07:11:39
original
720 Les gens l'ont consulté

Why Can't My Linker Find `-l`?

"usr/bin/ld : impossible de trouver -l" Guide de dépannage

Lors de la compilation d'un programme, l'erreur "usr/bin/ld : impossible de trouver -l" indique que l'éditeur de liens ne parvient pas à localiser la bibliothèque spécifiée. Pour résoudre ce problème, suivez les étapes de dépannage suivantes :

1. Vérifier l'existence de la bibliothèque :

Assurez-vous que la bibliothèque à laquelle vous faites référence existe à l'emplacement spécifié. Exécutez la commande suivante pour répertorier toutes les bibliothèques disponibles :

ldconfig -p | grep <nameOfTheLibrary>
Copier après la connexion

2. Validation du lien symbolique :

Si vous avez créé un lien symbolique vers la bibliothèque, confirmez qu'il est correct et qu'il pointe vers le fichier de bibliothèque réel. Utilisez la commande "ls -l" pour afficher le lien :

ls -l <symbolicLink>
Copier après la connexion

3. Sortie de l'éditeur de liens détaillé :

Pour déterminer les fichiers spécifiques recherchés par l'éditeur de liens, exécutez-le en mode détaillé. Ajoutez l'indicateur "--verbose" à la commande de liaison :

ld -l<nameOfTheLibrary> --verbose
Copier après la connexion

La sortie affichera tous les répertoires et fichiers potentiels pris en compte par l'éditeur de liens.

4. Installer les bibliothèques manquantes :

Si la bibliothèque n'existe pas ou ne peut pas être localisée, installez-la à l'aide de votre gestionnaire de packages. Par exemple, sur un système basé sur Debian :

sudo apt-get install <nameOfTheLibrary>-dev
Copier après la connexion

5. Ajouter le chemin de la bibliothèque à la commande :

Dans certains cas, l'éditeur de liens peut ne pas être en mesure de trouver automatiquement la bibliothèque. Vous pouvez spécifier manuellement le chemin de la bibliothèque à l'aide de l'indicateur "-L" :

g++ -o myprogram myprogram.cpp -l<nameOfTheLibrary> -L/path/to/library
Copier après la connexion

Exemple :

Pour résoudre le problème décrit dans le problème référencé, où le l'éditeur de liens n'a pas pu trouver la bibliothèque ZLIB :

  1. Assurez-vous que le fichier zlib.so existe dans le répertoire spécifié ou créez un lien symbolique au fichier versionné (zlib.so.N).
  2. Exécutez ld -lzlib --verbose pour vérifier les fichiers recherchés.
  3. Si zlib.so est manquant, créez un lien symbolique vers le fichier versionné existant :
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
Copier après la connexion

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.cn
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