Ich versuche, Code auf Ubuntu 10.04 LTS zu erstellen, der OpenSSL 1.0.0 verwendet. Wenn ich make ausführe, wird g ++ mit der Option "-lssl" aufgerufen. Die Quelle enthält:
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
Ich rannte:
$ sudo apt-get install openssl
Reading package lists... Done
Building dependency tree
Reading state information... Done
openssl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Aber ich denke, das openssl-Paket enthält die Bibliothek nicht. Ich bekomme diese Fehler bei make:
foo.cpp:21:25: error: openssl/bio.h: No such file or directory
foo.cpp:22:28: error: openssl/buffer.h: No such file or directory
foo.cpp:23:25: error: openssl/des.h: No such file or directory
foo.cpp:24:25: error: openssl/evp.h: No such file or directory
foo.cpp:25:25: error: openssl/pem.h: No such file or directory
foo.cpp:26:25: error: openssl/rsa.h: No such file or directory
Wie installiere ich die OpenSSL C ++ - Bibliothek unter Ubuntu 10.04 LTS?
Ich habe ein man g++
und (unter "Optionen zum Verknüpfen") für die Option -l ausgeführt, die besagt: "Der Linker durchsucht eine Standardliste von Verzeichnissen für die Bibliothek ..." und "Die durchsuchten Verzeichnisse enthalten mehrere Standardsystemverzeichnisse ...". Was sind diese Standardsystemverzeichnisse?
c++
ubuntu
installation
openssl
Daryl Spitzer
quelle
quelle
-dev
Namenskonvention. Sie können auch densynaptic
Paketmanager verwenden, um alle Pakete aufzulisten, deren Namen libssl enthalten. Wenn Sie diese Liste und ihre Beschreibungen durchsuchen, erhalten Sie wahrscheinlich den Hinweis.apt-cache search package-name
Antworten:
Sie möchten das Entwicklungspaket libssl-dev installieren:
quelle
apt install
für neue dist ubuntuapt-get install libssl-dev
quelle
Wenn Sie mit verknüpfen,
-lfoo
ist die Bibliothek wahrscheinlichlibfoo.so
. Die Bibliothek selbst ist wahrscheinlich Teil deslibfoo
Pakets, und die Header befinden sich imlibfoo-dev
Paket, wie Sie festgestellt haben.Einige Leute verwenden die GUI "synaptic" app (
sudo synaptic
), um Pakete zu finden und zu installieren, aber ich bevorzuge die Befehlszeile. Eine Sache, die es einfacher macht, das richtige Paket über die Befehlszeile zu finden, ist die Tatsache, dassapt-get
die Bash-Vervollständigung unterstützt wird.Versuchen Sie zu tippen
sudo apt-get install libssl
und drücken Sie dann tab, um eine Liste der übereinstimmenden Paketnamen anzuzeigen (dies kann hilfreich sein, wenn Sie die richtige Version eines Pakets auswählen müssen, für das mehrere Versionen oder andere Variationen verfügbar sind).Die Bash-Vervollständigung ist tatsächlich sehr nützlich. Sie können beispielsweise auch eine Liste der
apt-get
unterstützten Befehle abrufen, indem Sie tippensudo apt-get
und dann drücken tab.quelle
openssl-dev
,libssl-dev
aber sie entscheiden sich dagegen.Ich habe hier eine detaillierte Lösung gefunden: OpenSSL manuell unter Linux installieren
Aus dem Blogbeitrag ...:
quelle
Eine andere Möglichkeit, die openssl-Bibliothek aus dem Quellcode unter Ubuntu zu installieren, sind die folgenden Schritte. Hier
WORKDIR
ist Ihr Arbeitsverzeichnis:quelle
Sie wollen das
openssl-devel
Paket. Zumindest denke ich, dass es-devel
auf Ubuntu ist. Könnte sein-dev
. Es ist einer der beiden.quelle
sudo apt-get install openssl-dev
undsudo apt-get install openssl-devel
Rückgabe "E: Paket konnte nicht gefunden werden ..."sudo yum install openssl-devel*
Wenn Sie unter Debian oder Ubuntu eine Entwicklungsdatei (oder eine andere Datei) vermissen, können Sie
apt-file
in der Regel herausfinden, welches Paket diese Datei bereitstellt:Ein kurzer Blick auf jedes der Pakete, die vom Befehl zurückgegeben
apt show
werden, zeigt Ihnen, welches der Pakete das ist, nach dem Sie suchen:quelle
sudo apt-get install libcurl4-openssl-dev
quelle