c++ - 如何在另一个 c++ 文件中声明 Paho MQTT C++?
问题描述
下面是我的项目结构,
root@user-VirtualBox:/home/user/octane_etk_sample-6.0.0.240# ls
bin include paho.mqtt.c speedway_embedded_example.cpp
cap lib paho.mqtt.cpp VERSION
cap_description.in Makefile SCMREV
我在项目目录中有 paho.mqtt.cpp 包,即octane_etk_sample-6.0.0.240,并且我已经安装了https://github.com/eclipse/paho.mqtt.cpp中提到的所有步骤。
现在,我在 speedway_embedded_example.cpp 中包含了 MQTTAsync 头文件,如下所示,
#include <iostream>
#include <string>
#include <algorithm>
#include <signal.h>
#include <stdio.h>
#include <cstdlib>
#include "ltkcpp.h"
#include "impinj_ltkcpp.h"
#include "time.h"
#include "/home/user/octane_etk_sample-6.0.0.240/paho.mqtt.c/src/MQTTAsync.h"
包含头文件后,我试图在公共类中建立 MQTT 客户端连接,
void
CMyApplication::printOneTagReportData (
CTagReportData * pTagReportData)
{
string address = "tcp://mqtt1.mindlogic.com:1883";
cout << "OK\n" << address;
mqtt::async_client cli(address, "", 120, "data-persist");
}
当我尝试制作 speedway_embedded_example 文件时,出现以下错误,
root@user-VirtualBox:/home/mindlogic/octane_etk_sample-6.0.0.240# make
mkdir -p ./bin
g++ \
-m32 -Wno-write-strings \
-Iinclude \
speedway_embedded_example.cpp \
-Llib -lltkcpp_x86 -lltkcppimpinj_x86 -lxml2_x86 \
-L/usr/bin -ldl -lssl -lcrypto \
-o bin/speedwayr_x86
speedway_embedded_example.cpp: In member function ‘void CMyApplication::printOneTagReportData(LLRP::CTagReportData*)’:
speedway_embedded_example.cpp:1650:4: error: ‘mqtt’ has not been declared
mqtt::async_client cli(address, "", 120, "data-persist");
有人会帮我在上述情况下建立客户端连接吗?
解决方案
您包括没有名称空间的 C 库。
您(可能)想要 C++ 库。
https://github.com/eclipse/paho.mqtt.cpp
或者更好的是,由于您包含嵌入式标签,您可能想要使用
https://github.com/eclipse/paho.mqtt.embedded-c
它具有 C 和 C++ 的嵌入式代码。您应该使用您正在使用的库提供的示例代码。
推荐阅读
- visual-studio-code - 关闭后在vs代码中撤消并再次打开vs代码
- c++ - C++计数成员函数重载
- bootstrap-4 - 引导程序 4 | 如何在一张幻灯片中显示两张图片
- android - 我在使用 Volley 库使用 api 从 json 获取数据时遇到 AuthfailureError 请告诉我解决它的方法
- python - [Python pandas]:ValueError:无法将字符串转换为浮点数:'#DIV/0!'
- reactjs - SlateJS:仅在活动块上方显示浮动工具栏
- java - 无法检查文本字段是否为空
- python - 如何在 Python 中将 PCAP 文件包转换为向量
- sqlite - 如何使用动态数据更新多行?
- javascript - 如何在本地存储 (JavaScript) 中保存首选项