cmake构建paho.mqtt.cpp时提示Could NOT find PahoMqttC (missing: PAHO_MQTT_C_LIBRARIES)的解决方法

文章讲述了在使用cmake构建MqttC时遇到的CouldNOTfindPahoMqttC错误,原因是缺少PAHO_BUILD_STATIC和PAHO_WITH_SSL参数。解决方案是将这两个值设为true,进行makeinstall,然后重新编译paho.mqtt.cpp。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


出现Could NOT find PahoMqttC (missing: PAHO_MQTT_C_LIBRARIES)错误的原因是因为MqttC在使用cmake构建时少指定了两个参数。
通过查看MqttC的git的readme,发现PAHO_BUILD_STATIC和PAHO_WITH_SSL默认是false,因此在cmake构建工程时MqttC时需要把这俩值设为true,然后执行make install ,安装完成后,再重新构建paho.mqtt.cpp。

 cmake -DPAHO_BUILD_STATIC=TRUE -DPAHO_WITH_SSL=TRUE ..
在Linux系统中,针对arm-linux-gnueabihf架构交叉编译Paho MQTT C库,需要确保所有的依赖库都已经正确配置并且适用于目标架构。以下是详细步骤: 参考资源链接:[Linux环境下MQTT编程与openssl、paho.mqtt.c交叉编译指南](https://wenku.csdn.net/doc/39q7v7w0kk?spm=1055.2569.3001.10343) 首先,需要交叉编译OpenSSL库。按照以下步骤操作: 1. 下载OpenSSL源码包,并解压。 2. 使用arm-linux-gnueabihf工具链执行交叉编译配置: ```bash ./config shared --prefix=<openssl-install-path> no-asm --cross-compile-prefix=arm-linux-gnueabihf- ``` 3. 根据目标硬件平台调整Makefile,可能需要去除一些不适用的编译选项,并添加正确的交叉编译选项。 4. 编译并安装OpenSSL: ```bash make make install ``` 接下来,交叉编译Paho MQTT C库: 1. 获取Paho MQTT C的源码。 2. 在源码目录中配置交叉编译环境: ```bash cmake -DCMAKE_INSTALL_PREFIX=<paho-install-path> -DCMAKE_TOOLCHAIN_FILE=<toolchain-file> . ``` 其中,`<toolchain-file>`是CMake的工具链文件,用于指定交叉编译工具链和其他编译选项。 3. 根据实际情况调整INSTALL_DATA变量,确保安装路径符合预期。 4.cmake配置添加OpenSSL的头文件和库文件路径: ```bash -DOPENSSL_ROOT_DIR=<openssl-install-path> -DOPENSSL_LIBRARIES=<path-to-openssl-lib> ``` 5. 编译Paho MQTT C库: ```bash make ``` 6. 安装到指定目录: ```bash make install ``` 通过这些步骤,你可以成功地交叉编译Paho MQTT C库,并确保它链接到交叉编译的OpenSSL库。务必检查编译和链接过程中生成的错误信息,并根据需要调整配置。 此外,建议深入学习《Linux环境下MQTT编程与openssl、paho.mqtt.c交叉编译指南》,该资料提供了从基础到高级的全面指导,帮助你在嵌入式Linux环境中有效地部署MQTT通信解决方案。 参考资源链接:[Linux环境下MQTT编程与openssl、paho.mqtt.c交叉编译指南](https://wenku.csdn.net/doc/39q7v7w0kk?spm=1055.2569.3001.10343)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值