动态库安装
-
到官网下载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
- 进行编译
sudo make
可能会出现
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
make test
make install
make clean
./configure --shared
make test
make install
- 然后将下面两个文件复制到指定目录
cp zutil.h /usr/local/include
cp zutil.c /usr/local/include
- 解决后重新进行编译
sudo make
- 进行安装
sudo make install
- 安装完成后,编辑环境变量
# 进入文件/etc/profile
sudo gedit /etc/profile
# 在文件最后加上如下代码
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/openssl/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/openssl/include
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/openssl/lib
export LD_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库即可
版权声明:本文为weixin_45684629原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。