Я пытаюсь построить некоторый код на Ubuntu 10.04 LTS, который использует OpenSSL 1.0.0. Когда я запускаю make, он вызывает g ++ с опцией "-lssl". Источник включает в себя:
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
Я побежал:
$ 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.
Но я думаю, что пакет openssl не включает библиотеку. Я получаю эти ошибки на 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
Как установить библиотеку OpenSSL C ++ в Ubuntu 10.04 LTS?
Я выполнил man g++
(и в разделе «Параметры связывания») параметр -l, в котором говорится: «Компоновщик ищет стандартный список каталогов для библиотеки ...» и «В найденные каталоги входят несколько стандартных системных каталогов ...» Что это за стандартные системные каталоги?
c++
ubuntu
installation
openssl
Дэрил Спитцер
источник
источник
-dev
соглашения об именах. Вы также можете использоватьsynaptic
менеджер пакетов, чтобы вывести список всех пакетов, имена которых содержат libssl - просмотр этого списка и их описания, вероятно, дадут вам подсказку.apt-cache search package-name
Ответы:
Вы хотите установить пакет разработки, который является libssl-dev:
источник
apt install
для новогоapt-get install libssl-dev
источник
Если вы связываетесь с,
-lfoo
то библиотека скорее всегоlibfoo.so
. Сама библиотека, вероятно, является частьюlibfoo
пакета, а заголовки находятся вlibfoo-dev
пакете, как вы обнаружили.Некоторые люди используют «synaptic» app (
sudo synaptic
) с графическим интерфейсом для (определения местоположения и) установки пакетов, но я предпочитаю использовать командную строку. Одна вещь, которая облегчает поиск нужного пакета из командной строки, это тот факт, чтоapt-get
поддерживается завершение bash.Попробуйте набрать,
sudo apt-get install libssl
а затем нажмите, tabчтобы увидеть список совпадающих имен пакетов (это может помочь, когда вам нужно выбрать правильную версию пакета с несколькими версиями или другими доступными вариантами).Завершение Bash на самом деле очень полезно ... например, вы также можете получить список команд, которые
apt-get
поддерживаются, набрав,sudo apt-get
а затем нажав tab.источник
openssl-dev
наlibssl-dev
но они предпочитают не.Я нашел подробное решение здесь: вручную установить OpenSSL на Linux
Из сообщения в блоге ...:
источник
Другой способ установить библиотеку openssl из исходного кода в Ubuntu, следуя инструкциям ниже, вот
WORKDIR
ваш рабочий каталог:источник
Вы хотите
openssl-devel
пакет. По крайней мере, я думаю, что это-devel
на Ubuntu. Может быть-dev
. Это один из двух.источник
sudo apt-get install openssl-dev
и другое:sudo apt-get install openssl-devel
«E: Не удалось найти посылку ...»sudo yum install openssl-devel*
Как правило, когда в Debian или Ubuntu вам не хватает файла разработки (или любого другого файла в этом отношении), используйте,
apt-file
чтобы выяснить, какой пакет предоставляет этот файл:Беглый взгляд на каждый из пакетов, возвращаемых командой, с помощью
apt show
которого вы узнаете, какой из пакетов вы ищете:источник
sudo apt-get install libcurl4-openssl-dev
источник