我正在尝试在使用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++
和(在"Options for Linking"之下)它声明:" The linker searches a standard list of directories for the library..."和"The directories searched include several standard system directories..."这些标准系统目录是什么?
7 回答
你想要openssl-devel包 . 至少我认为它是关于Ubuntu的 . 可能是-dev . 这是两个中的一个 .
我在这里找到了一个详细的解决方案:Install OpenSSL Manually On Linux
来自博客文章......:
您想安装开发包,它是libssl-dev:
apt-get install libssl-dev
从Ubuntu上的源代码安装openssl库的另一种方法,遵循以下步骤,这里
WORKDIR
是你的工作目录:如果您与
-lfoo
链接,则库可能是libfoo.so
. 库本身可能是libfoo
包的一部分,并且 Headers 位于libfoo-dev
包中,如您所发现的那样 .有些人使用GUI "synaptic" app(
sudo synaptic
)来(定位和)安装软件包,但我更喜欢使用命令行 . 从命令行中找到正确的包更容易的一件事是apt-get
支持bash完成 .尝试键入
sudo apt-get install libssl
然后单击选项卡以查看匹配的程序包名称列表(当您需要选择具有多个版本或其他可用变体的程序包的正确版本时,这可能会有所帮助) .Bash完成实际上非常有用...例如,您还可以通过键入
sudo apt-get
然后点击选项卡来获取apt-get
支持的命令列表 .sudo apt-get install libcurl4-openssl-dev