本人C++新手,cmake刚接触,最近想用到MQTT,下载的库老是编译不过,在网上找了很多教程说的都不太清楚,所以写下这篇记录一下编译过程,主要参考github说明文档。
环境:win10 64位 ,MinGW 64 ,Visual Studio 2019, CMake v3.17(官方要求v3.5)
因为MQTT-C++库依赖MQTT-C库,所以先下载C库。
1、构建 Paho C 库

git clone https://github.com/eclipse/paho.mqtt.c.git
cd paho.mqtt.c
git checkout v1.3.8
cmake -Bbuild -H. -DPAHO_ENABLE_TESTING=OFF -DPAHO_BUILD_STATIC=ON -DPAHO_WITH_SSL=OFF -DPAHO_HIGH_PERFORMANCE=ON -DCMAKE_INSTALL_PREFIX=./build/_install
cmake --build build/ --config Release --target install

注:默认用的Visual Studio编译器,可以使用-G指定编译器。

-DPAHO_WITH_SSL=ON这是在启用 SSL/TLS 的情况下构建的。如果不需要,请省略(我关闭了)。

-DCMAKE_INSTALL_PREFIX=./build/_install  这个参数指定编译程序安装的位置我选择在当前文件下./build/_install。

cmake --build build/ --config Release --target install    这句--config Release不能省略

2、 构建 Paho C++ 库

git clone https://github.com/eclipse/paho.mqtt.cpp
cd paho.mqtt.cpp
cmake -Bbuild -H. -DPAHO_BUILD_DOCUMENTATION=ON -DPAHO_BUILD_SAMPLES=ON -DPAHO_BUILD_STATIC=ON -DCMAKE_INSTALL_PREFIX=./build/_install -DCMAKE_PREFIX_PATH=E:\cpp\paho.mqtt.c\build\_install
cmake --build build/ --config Release --target install

和C库差不多,-DCMAKE_INSTALL_PREFIX=./build/_install指程序将要被安装到的位置。

-DCMAKE_PREFIX_PATH=E:\cpp\paho.mqtt.c\build\_install因为c++库依赖c库,所以这个变量指定c库的安装位置。

注:可以在配置时使用 CMake 生成器开关-G选择 64 位目标。

cmake -G "Visual Studio 14 Win64" -Bbuild -H. -DCMAKE_INSTALL_PREFIX=C:\mqtt\paho-c

编译器Visual Studio版本根据自己系统环境填写,这里只是举例。

如果是linux系统,可以用-DCMAKE_BUILD_TYPE=Release指定构建类型。

如果要构建文档(PAHO_BUILD_DOCUMENTATION) 会要求安装doxygen,百度自行下载安装。

paho.mqtt.cpp库编译相关推荐

  1. 【Mqtt】基于paho.mqtt.c库的mqtt客户端实现

    目录 1.paho.mqtt.c 2.构建 3.mqtt客户端实现 1.paho.mqtt.c https://github.com/eclipse/paho.mqtt.c

  2. cmake:VS2015和GCC编译paho.mqtt C/C++ client

    paho.mqtt.c是eclipse开发的C语言跨平台mqtt client 开源库,paho.mqtt.cpp是对应的C++ Client,paho.mqtt支持CMAKE编译,本文以脚本形式提供 ...

  3. linux 编译mqtt静态库_编译MQTT C++ Client

    nmake  -f  ms\nt.mak(这是静态库,动态库是ntdll.mak) nmake  -f  ms\nt.mak test(测试命令,如果成功则最后显示"passed all t ...

  4. MQTT客户端库-Paho GO

    为了加深理解,本文是翻译文章.原文地址 Paho GO Client   语言 GO 协议 EPL AND EDL 官网地址 http://www.eclipse.org/paho/ API类型 As ...

  5. MQTT客户端paho.mqtt.XXX

    1. MQTT客户端C代码库 C语言库:https://github.com/eclipse/paho.mqtt.c 1.1 C源码下载构建 # centos7 OS 方法一 $ git clone ...

  6. STM32+ESP8266(ESP-12F)物联网温度计-移植paho MQTT协议连接阿里云

    STM32+ESP8266(ESP-12F)物联网温度计-移植paho MQTT协议连接阿里云 目录 STM32+ESP8266(ESP-12F)物联网温度计-移植paho MQTT协议连接阿里云 一 ...

  7. paho.mqtt.c使用openssl加密通讯

    证书的生成和配置请参考https://blog.csdn.net/sy84436446/article/details/128576433 下载和编译 # 下载paho.mqtt.c代码 git cl ...

  8. cmake:解决MSVC下/MT 编译paho.mqtt.c的问题

    paho.mqtt.c是eclipse开发的C语言跨平台mqtt client 开源库,之前写过一篇博客<cmake:VS2015和GCC编译paho.mqtt C/C++ client> ...

  9. mqtt 库编译及示例

    1,源码地址 git clone https://github.com/eclipse/paho.mqtt.c.git,下载即可. 2,编译库 下载源码后,cd paho.mqtt.c目录下,直接ma ...

最新文章

  1. 靠脑机接口“隔空探物”,大脑植入芯片可实现“心灵感应”
  2. linux nexus状态,linux 启动 nexus
  3. 最快捷的阅读实训新闻
  4. Redis数据库(三)——(主从复制、哨兵模式、集群)
  5. .NET 中密封类的性能优势
  6. 命令行cd到_前端(只)需要掌握这些命令行(就还行了)
  7. 漫步数理统计二——集合论
  8. 是时候了解React Native了
  9. vue 和react
  10. 使用 guard 的正确姿势
  11. Android qemu pipe高速管道(九)
  12. qt可以导入3d吗_3D全息投影技术可以用在教育行业吗?
  13. java/php/net/python房产信息管理系统设计
  14. ehcache使用java_Java分布式缓存框架Ehcache 使用(一)
  15. python把英语句子成分字母_python把英语句子成分字母
  16. 中科院NIPS 2017论文提出深度离散哈希算法,可用于图像检索:Deep Supervised Discrete Hashing
  17. MSP430F157IPMR 超低功耗 MCU 封装:LQFP64
  18. 【微信转账—设置付款时间问题】
  19. 课时31:永久储存:腌制一缸美味的泡菜
  20. java怎么语音转换成文字_Annyang将语音转换为文本

热门文章

  1. 什么是系统漏洞,该如何处理?
  2. CentOS6.10搜狐浏览器无法切换中文输入法问题之解决
  3. springboot遇到的Invalid bound statement (not found): com.yc.service.UserService的众多坑
  4. mysql 周_MySQL的跨年周统计问题
  5. Preface---ITE EC
  6. RabbitMQ的架构模型
  7. 一天一道ctf 第25天(md5强碰撞)
  8. 仿蚂蚁金服AntV框架蚂蚁数据可视化F2条形图、柱状图(注释详尽)
  9. 神经网络计算机的用途是,神经网络计算机的应用
  10. 网易严选 DMP 标签系统建设实践