如何在Ubuntu上安装OpenSSL库?
我试图在使用OpenSSL 1.0.0的Ubuntu 10.04 LTS上构build一些代码。 当我运行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包不包括库。 我得到这些错误:
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 ++库?
我做了一个man g++
和(在“选项链接”)为-l选项它指出:“链接器search库的目录的标准列表…”和“search目录包括几个标准系统目录.. 。“那些标准的系统目录是什么?
你想安装开发包,这是libssl-dev:
sudo apt-get install libssl-dev
apt-get install libssl-dev
我怎么能为自己弄明白(除了在这里问这个问题)? 我可以不知何故告诉apt-get列出所有的软件包,和grep的SSL? 或者我需要知道“lib * -dev”命名约定?
如果你用-lfoo
链接,那么这个库可能是libfoo.so
。 库本身可能是libfoo
包的一部分,头文件在libfoo-dev
包中,正如你发现的那样。
有些人使用gui“synaptic”应用程序( sudo synaptic
)来(查找和)安装软件包,但我更喜欢使用命令行。 有一件事情使得从命令行find正确的包变得更容易,因为apt-get支持bash完成。
尝试inputsudo apt-get install libssl
,然后点击“tab”查看匹配的软件包名称列表(当需要select具有多个版本或其他可用变体的软件包的正确版本时,可以提供帮助)。
Bash完成实际上非常有用…例如,您也可以通过键入sudo apt-get
然后点击“tab”来获得“apt-get”支持的命令列表。
你需要openssl-devel软件包。 至less我认为这是在Ubuntu上的破解。 可能是-dev。 这是两个之一。
在Ubuntu上从源代码安装openssl库的另一种方法,按照下面的步骤,在这里WORKDIR是你的工作目录:
- sudo apt-get install pkg-config
- CD WORKDIR
- git clone https://github.com/openssl/openssl.git
- CD openssl
- ./config中
- 使
- sudo make install
- 打开文件/etc/ld.so.conf,在EOF处添加一行:“/ usr / local / lib”
- sudo ldconfig