2016-07-20 10 views
-1

Wenn ich versuche, die Linux executable auf anderen frischen Maschine ausführen mein Programm gibt einen Fehler für die Abhängigkeit von OpenSSL.Wie zu entfernen OpenSSL Bibliothek Abhängigkeiten

Zum reibungslosen Ablauf meines Programms müssen libssl.so und libcrypto.so vorgeladen sein.

Wie kann ich diese Abhängigkeit entfernen mit make-Datei oder eine andere Lösung auf Linux

+0

Es liegt an Ihnen zu entscheiden, was Ihren Anforderungen entspricht. Sie können [NSS] (http://nss-crypto.org/), [GnuTLS] (http://www.gnutls.org/) oder eine andere Sicherheitsbibliothek verwenden, die Ihren Anforderungen entspricht. – jww

+0

Ich möchte nur diese Abhängigkeiten mit Make-Datei anhängen. –

Antwort

0

Es scheint, dass Sie die ausführbare Datei mit OpenSSL-Bibliotheken dynamisch gelinkt. Ihre ausführbare Datei benötigt also libcrypto.so und libssl.so. Sie haben zwei Möglichkeiten:

  1. OpenSSL ist ziemlich weit verbreitet in Linux-Umgebung und ist wahrscheinlich auf dem Linux vorinstalliert, auf dem Sie Ihre ausführbare Datei laufen. So kann das Problem in der erforderlichen Version der Bibliotheken sein - Ihre ausführbare Datei kann mit z. OpenSSL 1.0.1 und Linus hat 0.9.8. Oder das Problem könnte mit dem Pfad der Bibliotheken sein. In RadHat OpenSSL Bibliotheken sind standardmäßig in/lib64. So müssen Sie entweder Ihre Anwendung mit der gleichen oder einer kompatiblen Version von OpenSSL zu bauen, wie vorhanden auf Linux, wo Sie laufen oder den richtigen Pfad zur Verfügung stellen von LD_LIBRARY_PATH Einstellung
  2. Sie die ausführbare Datei mit OpenSSL-Bibliotheken statisch verknüpfen können:

    gcc -lsome_dynamic_lib code.c libcrypto.a libssl.a

+0

also kann ich einfach diese Zeile in meinem make-Datei verwenden und wenn ich nicht falsch bin Sie sagen, dass nach der zweiten Option brauche ich nicht diese beiden Dateien zum Ausführen meiner Objektdatei auf anderen Maschinen –

+0

Ja, wenn Sie für die zweite gehen Option und eine statische Verbindung mit OpenSSL-Bibliotheken machen Sie nicht von OpenSSL .so Dateien abhängig sein. – Oleg

+0

wenn ich diese lib-Dateien im Makefile anhefte. Wenn ich versuche, den Code zu kompilieren, versucht er, alle anderen Dynamiken als statisch zu verwenden. können Sie mir den Weg der Bibliotheken von libgcc –