在win64下编译支持双证书的mosquitto

在win64下编译支持双证书的mosquitto

简介:基于TIASSL1.1.1k,编译mosquitto,使得mosquitto支持双证书连接,满足国密标准。

编译环境

  • 在win64下的TIASSL1.1.1k 库

在这里插入图片描述

  • 修改源码后的mosquitto2.0.10

  • CMake 3.25.0

  • cJSON 1.7.15

  • Pthreads-Win32

  • VisualStudio 2022

编译步骤

步骤一:配置安装cJSON

  1. 下载cJSON 1.7.15源码

  2. 解压源码
    在这里插入图片描述

  3. 使用cmake配置编译环境,设置输出目录

在这里插入图片描述

  1. 使用vs2022打开生成的配置

在这里插入图片描述

  1. 使用vs2022生成解决方案
    在这里插入图片描述

  2. 在debug目录下,找到生成的库文件

在这里插入图片描述

  1. 复制源代码中的cJSON.h 和库文件到includelib文件夹

步骤二:添加pthread支持

pthread本身的Linux平台的开发库,但是POSIX threads for win32开源项目给出了其windows平台下的开源实现。官网地址Pthreads-Win32,在官网上给出的DLL、LIB、头文件下载地址为:ftp//sourceware.org/pub/pthreads-win32/dll-latest,由于现在的浏览器不支持访问ftp数据库,直接使用xftp7进行下载。

  1. 在xftp7 地址输入ftp://sourceware.org,回车选择匿名登录

在这里插入图片描述

  1. 进入到/pub/pthreads-win32/文件夹,双击dll-latest,进入到最新的库文件和头文件夹

在这里插入图片描述

  1. 将dll、include、lib下载到主机上
    在这里插入图片描述

  2. 查看dll文件夹下的x64位动态库

在这里插入图片描述

  1. 查看include头文件库

在这里插入图片描述

  1. 查看lib文件夹下x64位库文件

在这里插入图片描述

步骤三:使用Cmake配置mosquitto

这里使用CMAKE 3.25.0生成VS2022下的项目文件

  1. 解压mosquitto-2.0.10

在这里插入图片描述

  1. 使用cmake打开,修改源文件路径和build路径

在这里插入图片描述

  1. Openssl报错

    在这里插入图片描述

  2. 首先,修改变量LIB_EAY_RELEASE,修改为libcrpto动态库的位置,这里使用的是libcrypto.dll.a,修改变量SSL_EAY_RELEASE的值为:libssl.dll.a动态库的地址。然后重新配置。CMAKE_INSTALL_PREFIX路径,可以修改为安装位置。

在这里插入图片描述

  1. 报错,添加两个环境变量。一个是:OPENSSL_INCLUDE_DIR,值为Opensll的include路径。添加环境变量OPENSSL_ROOT_DIR,值为TASSL的目录然后重新Configure。

在这里插入图片描述

  1. 报错,找不到cJson路径

在这里插入图片描述

  1. 添加cJson的头文件路径和库文件

在这里插入图片描述

  1. 重新Configure,得到下图,没有报错,直接生成即可。

在这里插入图片描述

  1. 生成成功,打开VS2022项目即可。

步骤四:在VS2022下编译mosquitto库

打开项目后,解决方案栏目的libmosquitto就是要生成的库文件的项目。

在这里插入图片描述

  1. 选中libmosquitto右键生成,会报错,找不到pthread.h

在这里插入图片描述

  1. 右键libmosquitto,打开属性面板,将pthread的头文件添加到包含目录,应用后重新生成。

在这里插入图片描述

  1. 大量重定义,且 error C2011: “timespec”:“struct”类型重定义类型重定义的错误

在这里插入图片描述

  1. 右键libmosquitto,打开属性面板,找到附加依赖项,发现这里的pthreadVC2.lib的路径并不是我们之前下载的pthread-win32,先将这一个删掉。

在这里插入图片描述

  1. 在附加库目录添加pthread的库目录

在这里插入图片描述

在这里插入图片描述

  1. 第4中的附加依赖项,中添加pthreadVC2.lib

在这里插入图片描述

7.在预处理器添加HAVE_STRUCT_TIMESPEC可以解决3的问题。

在这里插入图片描述

  1. 在mosquitto源码目录的include目录下,创建cjson文件夹,将cjson的头文件,复制到cjson下面。

在这里插入图片描述

  1. 编译成功

在这里插入图片描述

  1. 查看生成的mosquitto.libmosquitto.dll,在vs项目的lib\Debug文件夹下

在这里插入图片描述

  1. 将mosquitto头文件找到,将两个库文件复制出来,得到下面的

在这里插入图片描述

  1. 至此,编译完成。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值