GNU/Linux >> Tutoriels Linux >  >> Linux

Impossible de trouver l'erreur de bibliothèque libcrypto

Ajouter -L /usr/local/ssl/lib/ dans la ligne de commande GCC, avant le -lcrypto . Puisque vous construisez avec les en-têtes OpenSSL sous /usr/local/ssl , vous devez également établir un lien avec la bibliothèque réelle sous le même préfixe (même si vous semblez n'en avoir qu'une statique installée, cela peut ou non être votre intention ; vous devrez peut-être réinstaller correctement votre OpenSSL construit à partir de la source).

(edit) Pour corriger le dlopen() et amis non trouvés par le linker, ajoutez -ldl dans la ligne de commande GCC. -ldl indique à l'éditeur de liens de créer également un lien vers libdl.so, qui est la bibliothèque partagée contenant dlopen() , dlsym() , dlclose() etc.; ces fonctions sont utilisées par OpenSSL en interne et donc, -ldl est une dépendance indirecte lors de l'utilisation de -lcrypto (sous Linux). Étant donné que vous créez un lien vers une version statique de libcrypto, vous devez établir un lien explicite contre toutes les dépendances indirectes.

Si vous n'êtes pas familiarisé avec les liens vers les bibliothèques appropriées, je vous suggère d'utiliser OpenSSL tel qu'il est installé à partir du gestionnaire de packages de votre système d'exploitation ; cela pourrait vous éviter des ennuis.


Cela pourrait être pertinent pour les personnes qui ont essayé de créer leur propre openssl à partir des sources, puis de l'utiliser pour compiler d'autres programmes (dans mon cas, Git)

Lors de la configuration d'openssl, ajoutez l'option 'shared' :

./config shared

Cela créera la bibliothèque partagée requise libcrypto.so . Vous en trouverez plus dans le fichier INSTALL.

De plus, si vous rencontrez cette erreur pendant 'make'

"....can not be used when making a shared object

recompiler avec -fPIC

./config shared -fPIC


Linux
  1. Vous ne trouvez pas -lm ?

  2. ld ne peut pas trouver une bibliothèque existante

  3. Convertir une bibliothèque statique en bibliothèque partagée ?

  4. Comment initialiser une bibliothèque partagée sous Linux

  5. Erreur de compilation OpenSSL

libstdc++.so.5 :impossible d'ouvrir le fichier objet partagé - mais la bibliothèque est installée et à jour

Installation de Qt sous Linux, impossible de trouver -lGL

Impossible de trouver l'erreur pkg-config

Erreur lors du chargement de la bibliothèque partagée (glew)

Erreur de construction avec cmake :impossible de trouver -lpthreads

Savoir si la bibliothèque est dans le chemin