openssl库编译

1. linux 下编译

源码地址为:https://www.openssl.org/source/old/;当前最新版本为 1.1.0f,https://www.openssl.org/source/old/1.1.0/openssl-1.1.0f.tar.gz

源码编译

解压之后,进入源码目录openssl-1.1.0f,执行如下命令。因为只需要编译静态库,也没有特殊要求,所以使用的编译选项配置很简单:

1

2

./config -fPIC no-shared

make

其中,-fPIC:指示生成位置无关的代码,这个选项是在把openssl生成的静态库链接到动态库的时候提示错误添加的;no-shared:指示生成静态库。

最终在当前目录下会编译出libssl.a和libcrypto.a两个库文件,在开发的时候只需要包含头件并链接这两个库就可以了。

开发使用

有一点需要注意的是编译生成的库libssl.a和libcrypto.a存在依赖关系,要把libssl.a放在libcrypto.a前面,不然可能出现未定义的错误。库的头文件在openssl-1.1.0f/include/openssl目录中。

将openssl-1.1.0f/include/openssl目录拷贝到自己模块的头文件目录(./inc)下,将libssl.a和libcrypto.a静态库拷贝到自己模块的库文件目录(./lib)下,在makefile中添加头文件目录和lib库:

1

2

INCLUDE += ******** -I./inc

LIB += ******* -L./lib -lssl -lcrypto

在使用openssl库函数时,添加如下头文件(按需添加)即可:

1

2

3

#include <openssl/bio.h>

#include <openssl/ssl.h>

#include <openssl/err.h>

上一篇:install_mysql57.sh


下一篇:linux下库文件问题