GNU/Linux >> LINUX-Kenntnisse >  >> Linux

libcrypto-Bibliotheksfehler kann nicht gefunden werden

Fügen Sie -L /usr/local/ssl/lib/ hinzu in die GCC-Befehlszeile vor dem -lcrypto . Da bauen Sie gegen die OpenSSL-Header unter /usr/local/ssl , müssen Sie auch mit der eigentlichen Bibliothek unter demselben Präfix verlinken (obwohl Sie dort anscheinend nur eine statische Bibliothek installiert haben, kann dies Ihre Absicht sein oder nicht; Sie müssen möglicherweise Ihr OpenSSL, das aus den Quellen erstellt wurde, ordnungsgemäß neu installieren).

(Bearbeiten) Um die dlopen() zu reparieren und Freunde, die vom Linker nicht gefunden werden, fügen Sie -ldl hinzu in die GCC-Befehlszeile. -ldl weist den Linker an, auch gegen libdl.so zu linken, das ist die gemeinsam genutzte Bibliothek, die dlopen() enthält , dlsym() , dlclose() etc.; diese Funktionen werden von OpenSSL intern verwendet und daher -ldl ist eine indirekte Abhängigkeit bei Verwendung von -lcrypto (unter Linux). Da Sie auf eine statische Version von libcrypto verlinken, müssen Sie ausdrücklich alle indirekten Abhängigkeiten verlinken.

Wenn Sie mit dem Verknüpfen mit den richtigen Bibliotheken nicht vertraut sind, würde ich vorschlagen, dass Sie OpenSSL so verwenden, wie es von Ihrem Betriebssystem-Paketmanager installiert wurde. es könnte Ihnen Ärger ersparen.


Dies könnte für Leute relevant sein, die versucht haben, ihr eigenes Openssl aus dem Quellcode zu erstellen und es dann zum Kompilieren anderer Programme (in meinem Fall Git) zu verwenden

Fügen Sie während der Konfiguration von openssl die Option „shared“ hinzu:

./config shared

Dadurch wird die erforderliche gemeinsam genutzte Bibliothek libcrypto.so erstellt . Weitere Informationen finden Sie in der INSTALL-Datei.

Auch, wenn Sie während 'make'

auf diesen Fehler stoßen

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

neu kompilieren mit -fPIC

./config shared -fPIC


Linux
  1. So beheben Sie den Konfigurationsfehler:Makroverzeichnis „m4“ kann nicht gefunden werden [Gelöst]

  2. Wie behebt man den Python-Installationsfehler beim Laden gemeinsam genutzter Bibliotheken:libssl.so.1.0.0? [Gelöst]

  3. Fehler beim Laden gemeinsam genutzter Bibliotheken libcrypto.so.1.1 – OpenSSL [Fix]

  4. Kann keine gültige Basis-URL finden:YumRepo-Fehler [Gelöst]

  5. Pspell kann nicht gefunden werden – PHP-Konfigurationsfehler behoben

phpize-Konfigurationsfehler:Quellen können nicht gefunden werden (config.m4)

Fehler Kann die [PHP-Erweiterung mysqlnd] von OpenSSL nicht finden

So initialisieren Sie eine gemeinsam genutzte Bibliothek unter Linux

Beim Installieren von Qt unter Linux kann -lGL nicht gefunden werden

Fehler beim Installieren von extundelete-0.2.0 unter CentOS 5.6, Fehler:ext2fs-Bibliothek kann nicht gefunden werden

Finden Sie heraus, ob sich die Bibliothek im Pfad befindet