安装和使用适用于 C++ 的 MQTT Paho 库
Install and use MQTT Paho libraries for C++
我希望我的问题很容易解决。我应该在我的 Raspberry Pi v2 中使用 mqtt 协议,所以现在我正在尝试使用 Paho 库:
我用的是C++语言,所以我先写了这些命令
git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git
cd org.eclipse.paho.mqtt.c.git
make
sudo make install
然后是这些
git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.cpp.git
cd org.eclipse.paho.mqtt.cpp.git
make
现在我有两个问题:
- 我必须在我的文件中包含什么库?我正在尝试编译 Paho 站点 https://www.eclipse.org/paho/clients/cpp/ 中的示例,但如果我包含 C 库 "MQTTClient.h"(在 C 示例中),它无法识别 类,例如
mqtt::client
。我试图包含 client.h
(我在文档中找到它)但编译器没有找到它。
- 为什么启动Paho库的C++程序没有安装任何东西?只有创建库
lib/linmqttpp.so.0.1
的 make 命令。我必须在编译命令中 link 它吗?怎么样?
目前在 git 项目的 paho c++ 中,它没有为新用户正确构建。它会在您执行 make 时创建一个空的 c++ 库,因此您 link 反对的任何代码都将因未定义的方法而失败。您可以通过 运行 此命令查看您的库中有哪些内容。
nm -g lib/linmqttpp.so.0.1
你会看到它是空的。
此外,如果您从网站上复制并传递了示例代码,那么它将无法运行。除了网站上的内容之外,它还需要其他代码。它只是给你一个代码片段。
示例代码在此目录中。
src/samples
目前示例文件的 make 文件将失败。
我刚刚向项目提交了一个补丁来修复主构建和示例文件构建。应用后,项目将正确构建,您可以开始破解示例文件。
关于 C++ 项目未安装它,因为 make 文件中没有要安装的目标。如果您现在想要使用 sudo 权限将在 lib 中创建的文件复制到下面。
/usr/local/lib/
然后您可以从任何项目访问共享库。
我希望我的问题很容易解决。我应该在我的 Raspberry Pi v2 中使用 mqtt 协议,所以现在我正在尝试使用 Paho 库:
我用的是C++语言,所以我先写了这些命令
git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git
cd org.eclipse.paho.mqtt.c.git
make
sudo make install
然后是这些
git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.cpp.git
cd org.eclipse.paho.mqtt.cpp.git
make
现在我有两个问题:
- 我必须在我的文件中包含什么库?我正在尝试编译 Paho 站点 https://www.eclipse.org/paho/clients/cpp/ 中的示例,但如果我包含 C 库 "MQTTClient.h"(在 C 示例中),它无法识别 类,例如
mqtt::client
。我试图包含client.h
(我在文档中找到它)但编译器没有找到它。 - 为什么启动Paho库的C++程序没有安装任何东西?只有创建库
lib/linmqttpp.so.0.1
的 make 命令。我必须在编译命令中 link 它吗?怎么样?
目前在 git 项目的 paho c++ 中,它没有为新用户正确构建。它会在您执行 make 时创建一个空的 c++ 库,因此您 link 反对的任何代码都将因未定义的方法而失败。您可以通过 运行 此命令查看您的库中有哪些内容。
nm -g lib/linmqttpp.so.0.1
你会看到它是空的。
此外,如果您从网站上复制并传递了示例代码,那么它将无法运行。除了网站上的内容之外,它还需要其他代码。它只是给你一个代码片段。
示例代码在此目录中。
src/samples
目前示例文件的 make 文件将失败。
我刚刚向项目提交了一个补丁来修复主构建和示例文件构建。应用后,项目将正确构建,您可以开始破解示例文件。
关于 C++ 项目未安装它,因为 make 文件中没有要安装的目标。如果您现在想要使用 sudo 权限将在 lib 中创建的文件复制到下面。 /usr/local/lib/
然后您可以从任何项目访问共享库。