Estoy tratando de construir un código en Ubuntu 10.04 LTS que usa OpenSSL 1.0.0. Cuando ejecuto make, invoca g ++ con la opción "-lssl". La fuente incluye:
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
Corrí:
$ 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.
Pero supongo que el paquete openssl no incluye la biblioteca. Recibo estos errores en 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
¿Cómo instalo la biblioteca OpenSSL C ++ en Ubuntu 10.04 LTS?
Hice una man g++y (en "Opciones para vincular") para la opción -l dice: "El vinculador busca una lista estándar de directorios para la biblioteca ..." y "Los directorios buscados incluyen varios directorios de sistema estándar ..." ¿Cuáles son esos directorios del sistema estándar?
c++
ubuntu
installation
openssl
Daryl Spitzer
fuente
fuente

-devconvención de nomenclatura. También puede usar elsynapticadministrador de paquetes para enumerar todos los paquetes cuyos nombres contienen libssl; examinar esa lista y sus descripciones probablemente le darán la pista.apt-cache search package-nameRespuestas:
Desea instalar el paquete de desarrollo, que es libssl-dev:
fuente
apt installpara nuevo dist ubuntuapt-get install libssl-devfuente
Si está vinculando con,
-lfooentonces es probable que la bibliotecalibfoo.so. La biblioteca en sí misma es probablemente parte dellibfoopaquete, y los encabezados están en ellibfoo-devpaquete como has descubierto.Algunas personas usan la aplicación "sináptica" GUI (
sudo synaptic) para (localizar e) instalar paquetes, pero prefiero usar la línea de comandos. Una cosa que hace que sea más fácil encontrar el paquete correcto desde la línea de comandos es el hecho de queapt-getadmite la finalización de bash.Intente escribir
sudo apt-get install libssly luego presione tabpara ver una lista de nombres de paquetes coincidentes (que puede ayudar cuando necesite seleccionar la versión correcta de un paquete que tenga múltiples versiones u otras variaciones disponibles).La finalización de Bash es realmente muy útil ... por ejemplo, también puede obtener una lista de comandos que
apt-getadmite escribiendosudo apt-gety luego presionando tab.fuente
openssl-devalibssl-devpero no eligen.Encontré una solución detallada aquí: instalar OpenSSL manualmente en Linux
De la publicación del blog ...:
fuente
Otra forma de instalar la biblioteca openssl desde el código fuente en Ubuntu, sigue los pasos a continuación, aquí
WORKDIRestá tu directorio de trabajo:fuente
Quieres el
openssl-develpaquete. Al menos creo que está-develen Ubuntu. Puede ser-dev. Es uno de los dos.fuente
sudo apt-get install openssl-devysudo apt-get install openssl-develdevolver "E: No se pudo encontrar el paquete ..."sudo yum install openssl-devel*Como regla general, cuando esté en Debian o Ubuntu y le falte un archivo de desarrollo (o cualquier otro archivo), use
apt-filepara averiguar qué paquete proporciona ese archivo:Un vistazo rápido a cada uno de los paquetes que devuelve el comando, usando
apt showle dirá cuál de los paquetes es el que está buscando:fuente
sudo apt-get install libcurl4-openssl-devfuente