Estou tentando criar algum código no Ubuntu 10.04 LTS que usa o OpenSSL 1.0.0. Quando executo o make, ele invoca o g ++ com a opção "-lssl". A fonte inclui:
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
Eu corri:
$ 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.
Mas acho que o pacote openssl não inclui a biblioteca. Eu recebo esses erros no 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
Como instalo a biblioteca OpenSSL C ++ no Ubuntu 10.04 LTS?
Eu fiz um man g++
e (em "Opções para vincular") para a opção -l que declara: "O vinculador pesquisa uma lista padrão de diretórios da biblioteca ..." e "Os diretórios pesquisados incluem vários diretórios padrão do sistema ..." Quais são esses diretórios padrão do sistema?
c++
ubuntu
installation
openssl
Daryl Spitzer
fonte
fonte
-dev
convenção de nomenclatura. Você também pode usar osynaptic
gerenciador de pacotes para listar todos os pacotes cujos nomes contêm libssl - navegar nessa lista e suas descrições provavelmente fornecerão uma pista.apt-cache search package-name
Respostas:
Você deseja instalar o pacote de desenvolvimento, que é libssl-dev:
fonte
apt install
para novo dist ubuntuapt-get install libssl-dev
fonte
Se você está vinculando
-lfoo
, é provável que a bibliotecalibfoo.so
. A biblioteca em si provavelmente faz parte dolibfoo
pacote, e os cabeçalhos estão nolibfoo-dev
pacote, como você descobriu.Algumas pessoas usam o aplicativo "sináptico" da GUI (
sudo synaptic
) para (localizar e) instalar pacotes, mas eu prefiro usar a linha de comando. Uma coisa que facilita a localização do pacote certo na linha de comando é o fato deapt-get
oferecer suporte à conclusão do bash.Tente digitar
sudo apt-get install libssl
e, em seguida, pressione tabpara ver uma lista de nomes de pacotes correspondentes (o que pode ajudar quando você precisa selecionar a versão correta de um pacote que possui várias versões ou outras variações disponíveis).A conclusão do Bash é realmente muito útil ... por exemplo, você também pode obter uma lista de comandos
apt-get
compatíveis digitandosudo apt-get
e pressionando tab.fonte
openssl-dev
paralibssl-dev
mas eles não escolher.Encontrei uma solução detalhada aqui: Instale o OpenSSL manualmente no Linux
Na postagem do blog ...:
fonte
Outra maneira de instalar a biblioteca openssl a partir do código fonte no Ubuntu, segue as etapas abaixo, aqui
WORKDIR
está o seu diretório de trabalho:fonte
Você quer o
openssl-devel
pacote. Pelo menos eu acho que é-devel
no Ubuntu. Pode ser-dev
. É um dos dois.fonte
sudo apt-get install openssl-dev
esudo apt-get install openssl-devel
retorno "E: Não foi possível encontrar o pacote ..."sudo yum install openssl-devel*
Como regra geral, quando estiver no Debian ou Ubuntu e estiver faltando um arquivo de desenvolvimento (ou qualquer outro arquivo), use
apt-file
para descobrir qual pacote fornece esse arquivo:Uma rápida olhada em cada um dos pacotes retornados pelo comando, usando
apt show
lhe dirá qual dentre os pacotes é o que você está procurando:fonte
sudo apt-get install libcurl4-openssl-dev
fonte