Ubuntu安装openssl

  • Post author:
  • Post category:其他




动态库安装

  1. 到官网下载openssl,此处选择的

    openssl-1.1.1o.tar.gz



    官网地址
  2. 将下载的文件移动到主目录下
mv openssl-1.1.1o.tar.gz /home/username



username

替换为自己的用户名

  1. 到移动后的目录下打开终端,解压文件,并修改解压后的文件夹的名字
tar -zxvf openssl-1.1.1o.tar.gz
mv openssl-1.1.1o openssl
  1. 切换到解压目录下
cd openssl
  1. 指定安装目录,此处我安装到了

    /usr/local/openssl
./config --prefix=/usr/local/openssl
  1. 进行编译
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
  1. 进行安装
sudo make install
  1. 安装完成后,编辑环境变量
# 进入文件/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年的。

  1. 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



静态库安装

  1. 编译库

    下载好安装包以后,对其进行解压,进入解压包,然后依次执行:
 ./config -fPIC no-shared
 make

就会在此解压包中编译出

libssl.a



libcrypto.a

两个库文件

  1. 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 版权协议,转载请附上原文出处链接和本声明。