Próbuję zbudować kod na Ubuntu 10.04 LTS, który używa OpenSSL 1.0.0. Kiedy uruchamiam make, wywołuje g ++ z opcją „-lssl”. Źródło obejmuje:
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
Prowadziłem:
$ 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.
Ale chyba pakiet openssl nie zawiera biblioteki. Otrzymuję te błędy przy 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
Jak zainstalować bibliotekę OpenSSL C ++ na Ubuntu 10.04 LTS?
Zrobiłem man g++
a (w „Opcjach łączenia”) dla opcji -l stwierdza: „Linker przeszukuje standardową listę katalogów dla biblioteki ...” i „Przeszukiwane katalogi zawierają kilka standardowych katalogów systemowych ...” Jakie są te standardowe katalogi systemowe?
c++
ubuntu
installation
openssl
Daryl Spitzer
źródło
źródło
-dev
konwencji nazewnictwa. Możesz także użyćsynaptic
menedżera pakietów, aby wyświetlić listę wszystkich pakietów, których nazwy zawierają libssl - przeglądanie tej listy i ich opisów prawdopodobnie dałoby ci wskazówkę.apt-cache search package-name
Odpowiedzi:
Chcesz zainstalować pakiet programistyczny, którym jest libssl-dev:
źródło
apt install
dla nowego dist ubuntuapt-get install libssl-dev
źródło
Jeśli łączysz się z
-lfoo
biblioteką, biblioteka jest prawdopodobnielibfoo.so
. Sama biblioteka jest prawdopodobnie częściąlibfoo
pakietu, a nagłówki znajdują się wlibfoo-dev
pakiecie, jak odkryłeś.Niektóre osoby używają GUI „synaptic” app (
sudo synaptic
) do (lokalizowania i) instalowania pakietów, ale ja wolę korzystać z wiersza poleceń. Jedną z rzeczy, która ułatwia znalezienie odpowiedniego pakietu z wiersza poleceń, jest fakt, żeapt-get
obsługuje uzupełnianie bash.Spróbuj wpisać,
sudo apt-get install libssl
a następnie naciśnij przycisk, tababy wyświetlić listę pasujących nazw pakietów (co może pomóc, gdy trzeba wybrać poprawną wersję pakietu, który ma wiele wersji lub innych dostępnych wariantów).Uzupełnianie bash jest w rzeczywistości bardzo przydatne ... na przykład możesz również uzyskać listę poleceń, które
apt-get
obsługuje, wpisując,sudo apt-get
a następnie naciskając tab.źródło
openssl-dev
dolibssl-dev
ale nie wybrać.Znalazłem tu szczegółowe rozwiązanie: zainstaluj ręcznie OpenSSL w systemie Linux
Z posta na blogu ...:
źródło
Innym sposobem zainstalowania biblioteki openssl z kodu źródłowego na Ubuntu jest wykonanie poniższych kroków, oto
WORKDIR
katalog roboczy:źródło
Chcesz
openssl-devel
paczkę. Przynajmniej myślę, że jest-devel
na Ubuntu. Może być-dev
. To jeden z dwóch.źródło
sudo apt-get install openssl-dev
isudo apt-get install openssl-devel
zwróć „E: Nie można znaleźć pakietu ...”sudo yum install openssl-devel*
Zasadniczo, jeśli korzystasz z Debiana lub Ubuntu i brakuje Ci pliku programistycznego (lub dowolnego innego pliku w tym zakresie), użyj,
apt-file
aby dowiedzieć się, który pakiet zawiera ten plik:Szybki rzut oka na każdy pakiet zwrócony przez komendę, używając
apt show
powie ci, który z pakietów jest tym, którego szukasz:źródło
sudo apt-get install libcurl4-openssl-dev
źródło