动态库安装
- 到官网下载openssl,此处选择的
openssl-1.1.1o.tar.gz
,官网地址 - 将下载的文件移动到主目录下
mv openssl-1.1.1o.tar.gz /home/username
将
username
替换为自己的用户名
- 到移动后的目录下打开终端,解压文件,并修改解压后的文件夹的名字
tar-zxvf openssl-1.1.1o.tar.gz
mv openssl-1.1.1o openssl
- 切换到解压目录下
cd openssl
- 指定安装目录,此处我安装到了
/usr/local/openssl
./config --prefix=/usr/local/openssl
- 进行编译
sudomake
可能会出现 fatal error:zlib.h No such file or directory:
解决方法:
- 到zlib官网下载
zlib-1.2.13.tar.gz
:zlib官网 - 对其进行解压
tar-zxvf zlib-1.2.13.tar.gz
- 切换到其目录下,依次执行以下命令
cd zlib-1.2.13
./configure
maketestmakeinstallmake clean
./configure --sharedmaketestmakeinstall
- 然后将下面两个文件复制到指定目录
cp zutil.h /usr/local/include
cp zutil.c /usr/local/include
- 解决后重新进行编译
sudomake
- 进行安装
sudomakeinstall
- 安装完成后,编辑环境变量
# 进入文件/etc/profilesudo gedit /etc/profile
# 在文件最后加上如下代码exportC_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/openssl/include
exportCPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/openssl/include
exportLIBRARY_PATH=$LIBRARY_PATH:/usr/local/openssl/lib
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib
然后我们查看openssl的信息:
可以看到,输入
openssl
指令后,下面执行的可执行程序为
1.1.1
,这是Ubuntu系统原先自带的openssl库,这个库是没有头文件与库文件的,开发人员进行相关开发的时候是没办法使用的,但是通过安装openssl库,我们在日后的开发中就可以调用了。安装完成后,可执行程序依然是旧版,但是其内部调用的库是刚安装的显示的这个2022年的。
- QT开发中对其进行调用
- 项目添加配置
# 在qt项目.pro文件中添加openssl头文件以及动态库的配置
INCLUDEPATH += /usr/local/openssl/include
LIBS += /usr/local/openssl/lib/libssl.so /usr/local/openssl/lib/libcrypto.so
- 程序对其进行调用
#include<openssl/ssl.h>#include<openssl/sha.h>#include<openssl/aes.h>
10: 日常小项目的调用
如果日常小项目要调用openssl库,直接
#include <openssl/ssl.h>
就可以了,在编译的时候,后面加个
-lcrypto
,如下:
g++ test.cpp -lcrypto
静态库安装
- 编译库 下载好安装包以后,对其进行解压,进入解压包,然后依次执行:
./config -fPIC no-shared
make
就会在此解压包中编译出
libssl.a
和
libcrypto.a
两个库文件
- QT调用
- 将解压包中include下的
openssl
文件夹拷贝到项目文件夹下 - 在项目文件夹下建立
lib
文件夹,将libssl.a
和libcrypto.a
拷贝到其中 - 在项目的
pro
文件中加入:
LIBS += $$PWD/lib/libssl.a
LIBS += $$PWD/lib/libcrypto.a
LIBS +=-ldl
- 然后在项目中调用openssl库即可
版权归原作者 ieeieii 所有, 如有侵权,请联系我们删除。