mosquitto源码下载地址,目前使用的是最新版本2.0.14。
windows系统为win7 sp1版本,其他版本应该也也可以。
VS版本为2010,其他版本类似。
用于为mosquitto配成、生成vs下的工程,cmake的下载地址,这里使用的是3.22.1版本。
cmake的安装比较简单,安装提示安装即可。
mosquitto用到了POSIX下的pthreads线程库,windows原生是不支持POSIX pthreads的,这里需要安装windows下的pthreads开发库,这里是下载地址,选在最新版本的即可。
mosquitto用到了openssl中的加解密和TLS相关的功能,这里需要安装windows版本的openssl开发库,这里是windows openssl开发库的下载地址,注意选择,开发版本下载、安装。
mosquitto中也用到了cJSON,cJSON下载地址。
解压pthreads-w32-2-9-1-release.zip,会出现三个文件夹,这里需要注意的是Pre-build.2这个文件夹,这里面包括pthread相关的动态库、静态库、头文件等开发相关的内容。
这里直接安装下载的openssl安装文件Win64OpenSSL-3_0_1.exe,默认安装位置是:C:\Program Files\OpenSSL-Win32,安装完成之后,可以看到openssl的头文件和库文件。
cJSON的编译相对来说,较为简单,步骤如下
配置cmake环境。
由于cJSON比较简单,所以,Configure、Generate步骤没有问题。
打开,VS2010,进行编译。
新建目cJSON,并创建lib和include两个目录,将编译成功后的库文件和.h文件分别放到lib和include目录。
准备mosquitto的cmake编译环境。
将mosquitto-2.0.14解压,注意,解压缩的位置不要包含中文字符,否则,cmake会找不到mosquitto源码路径。
配置mosquitto vs工程配置文件路径,注意,路径也不要包含中文字符。
点击“Configure”,选择“Visual Studio 10 2010”.
配置中断,提示“找不到OPENSSL库”,提示需要配置“”OPENSSL_ROOT_DIR环境变量。
在上一步,我们已经安装了openssl,这里只需要配置一下环境变量即可。
注意,OPENSSL_ROOT_DIR环境变量的value是openssl安装路径,即:C:\Program Files\OpenSSL-Win64。保存配置,点击“Configure”继续配置。
配置中断提示未找到cJSON库,新建环境变量:CJSON_INCLUDE_DIR和CJSON_LIB_DIR,指定上一节的cJSON的安装目录,保存配置,点击“Configure”继续配置。
4.不出意外,配置成功。
5.点击,“Generate”生成VS2010工程。
打开mosquitto工程,开始编译。
注意,这里只编译libmosquitto这个工程。
编译时提示,找不到stdbool.h文件,这是由于VS2010编译环境,没有这个文件,下面是从VS2015中得到的stdbool.h文件。
// // stdbool.h // // Copyright (c) Microsoft Corporation. All rights reserved. // // The C Standard Library <stdbool.h> header. // #ifndef _STDBOOL #define _STDBOOL #define __bool_true_false_are_defined 1 #ifndef __cplusplus #if __STDC_VERSION__ < 199901 typedef int _Bool; #endif #define bool _Bool #define false 0 #define true 1 #endif /* __cplusplus */ #endif /* _STDBOOL */ /* * Copyright (c) 1992-2010 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V5.30:0009 */
将其放到VC/include目录下即可。注意,如果只编译,libmosquitto这个工程的话,不需要stdbool.h这个文件。