我试图在使用OpenSSL 1.0.0的Ubuntu 10.04 LTS上构建一些代码。当我运行make时,它使用“-lssl”选项调用g++。资料来源包括:
#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
如何在Ubuntu 10.04 LTS上安装OpenSSL c++库?
我为-l选项做了一个man g++和(在“链接选项”下),它声明:“链接器为库搜索一个标准目录列表…”和“搜索的目录包括几个标准系统目录…”这些标准系统目录是什么?
所有这些答案都是非常过时的,来自于软件包仍在开发的时候。你现在可以使用下面列出的"normal"命令:
sudo apt install openssl
编辑:OP的问题措辞很糟糕…毕竟,OpenSSL本身就是一个库,所以我在回答他的问题之前看得太快了。上面的命令安装“普通”OpenSSL。
在他的问题的末尾,他提到了make失败,这表明他正在手动编译包。是的,即使您下载了TAR球,它也将包括所有的openssl和libssl文件,然后您可以从中进行制作。
OP真正需要的是OpenSSL开发库,在这种情况下,你可以先使用上面的命令安装OpenSSL,然后再运行这个:
sudo apt install libssl-dev
更多信息:https://linuxtect.com/how-to-install-openssl-libraries-on-ubuntu-debian-mint/
所有这些答案都是非常过时的,来自于软件包仍在开发的时候。你现在可以使用下面列出的"normal"命令:
sudo apt install openssl
编辑:OP的问题措辞很糟糕…毕竟,OpenSSL本身就是一个库,所以我在回答他的问题之前看得太快了。上面的命令安装“普通”OpenSSL。
在他的问题的末尾,他提到了make失败,这表明他正在手动编译包。是的,即使您下载了TAR球,它也将包括所有的openssl和libssl文件,然后您可以从中进行制作。
OP真正需要的是OpenSSL开发库,在这种情况下,你可以先使用上面的命令安装OpenSSL,然后再运行这个:
sudo apt install libssl-dev
更多信息:https://linuxtect.com/how-to-install-openssl-libraries-on-ubuntu-debian-mint/
我是怎么知道的
我自己(除了问这个
问题)?我能不能告诉你
Apt-get列出所有包,以及grep . get
ssl ?还是我需要知道
“lib*-dev”命名规范?
如果你用-lfoo链接,那么这个库很可能是libfoo.so。库本身可能是libfoo包的一部分,并且正如您所发现的,头文件位于libfoo-dev包中。
有些人使用GUI“synaptic”应用程序(sudo synaptic)来(定位和)安装包,但我更喜欢使用命令行。更容易从命令行找到正确的包的一个原因是apt-get支持bash补全。
尝试输入sudo apt-get install libssl,然后按tab键查看匹配的包名列表(当您需要选择具有多个版本或其他可用变体的包的正确版本时,这可以提供帮助)。
Bash补全实际上非常有用…例如,您还可以通过键入sudo apt-get然后按tab键来获得apt-get支持的命令列表。