J'essaie de construire du code sur Ubuntu 10.04 LTS qui utilise OpenSSL 1.0.0. Lorsque j'exécute make, il invoque g ++ avec l'option "-lssl". La source comprend:
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
L'Iran:
$ 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.
Mais je suppose que le paquet openssl n'inclut pas la bibliothèque. Je reçois ces erreurs sur la marque:
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
Comment installer la bibliothèque OpenSSL C ++ sur Ubuntu 10.04 LTS?
J'ai fait un man g++
et (sous "Options de liaison") pour l'option -l, il indique: "L'éditeur de liens recherche une liste standard de répertoires pour la bibliothèque ..." et "Les répertoires recherchés incluent plusieurs répertoires système standard ..." Quels sont ces répertoires système standard?
c++
ubuntu
installation
openssl
Daryl Spitzer
la source
la source
-dev
convention de dénomination. Vous pouvez également utiliser lesynaptic
gestionnaire de packages pour répertorier tous les packages dont les noms contiennent libssl - parcourir cette liste et leurs descriptions vous donnerait probablement un indice.apt-cache search package-name
Réponses:
Vous souhaitez installer le package de développement, qui est libssl-dev:
la source
apt install
pour nouvelle dist ubuntuapt-get install libssl-dev
la source
Si vous vous connectez avec,
-lfoo
la bibliothèque est probablelibfoo.so
. La bibliothèque elle-même fait probablement partie dulibfoo
package, et les en-têtes sont dans lelibfoo-dev
package comme vous l'avez découvert.Certaines personnes utilisent l'application (synaptic) GUI (
sudo synaptic
) pour (localiser et) installer des packages, mais je préfère utiliser la ligne de commande. Une chose qui facilite la recherche du bon package à partir de la ligne de commande est le fait qu'ilapt-get
prend en charge la complétion bash.Essayez de taper
sudo apt-get install libssl
, puis appuyez sur tabpour voir une liste de noms de packages correspondants (ce qui peut vous aider lorsque vous devez sélectionner la version correcte d'un package qui a plusieurs versions ou d'autres variantes disponibles).La complétion de Bash est en fait très utile ... par exemple, vous pouvez également obtenir une liste de commandes qui
apt-get
prend en charge en tapantsudo apt-get
puis en appuyant tab.la source
openssl-dev
pour ,libssl-dev
mais ils choisissent de ne pas.J'ai trouvé une solution détaillée ici: Installer OpenSSL manuellement sur Linux
De l'article de blog ...:
la source
Une autre façon d'installer la bibliothèque openssl à partir du code source sur Ubuntu, suit les étapes ci-dessous, voici
WORKDIR
votre répertoire de travail:la source
Vous voulez le
openssl-devel
paquet. Au moins, je pense que c'est-devel
sur Ubuntu. C'est possible-dev
. C'est l'un des deux.la source
sudo apt-get install openssl-dev
etsudo apt-get install openssl-devel
retourner "E: Impossible de trouver le paquet ..."sudo yum install openssl-devel*
En règle générale, lorsque vous êtes sur Debian ou Ubuntu et qu'il vous manque un fichier de développement (ou tout autre fichier d'ailleurs), utilisez
apt-file
pour déterminer quel package fournit ce fichier:Un rapide coup d'œil à chacun des packages renvoyés par la commande, en utilisant
apt show
vous indiquera lequel des packages est celui que vous recherchez:la source
sudo apt-get install libcurl4-openssl-dev
la source