为c++安装和使用MQTT Paho库

Install and use MQTT Paho libraries for C++

本文关键字:MQTT Paho c++ 安装      更新时间:2023-10-16

我希望我的问题很容易解决。我应该在我的Raspberry Pi v2上使用mqtt协议,所以现在我正在尝试使用Paho库:

http://www.eclipse.org/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

现在我有两个问题:

  1. 我必须包含在我的文件中的库是什么?我试图在Paho的网站https://www.eclipse.org/paho/clients/cpp/中编译示例,但如果我包括C库"MQTTClient.h"(在C示例中),它不识别类,如mqtt::client。我试图包括client.h(我在文档中找到它),但编译器没有找到它。
  2. 为什么c++程序启动Paho的库不安装什么?创建库lib/linmqttpp.so.0.1的命令只有make。我必须在编译命令中链接它。如何?

当前在git项目的paho c++中,它不能为新用户正确构建。当你执行make时,它会创建一个空的c++库,所以你链接到的任何代码都会因为undefined方法而失败。您可以通过运行此命令来检查库中可用的内容。

nm -g lib/linmqttpp.so.0.1

你会看到它是空的。

如果你从网站复制并通过示例代码,那么它将不起作用。它需要其他代码除了什么是在网站上。它只是给你一个代码片段。

示例代码在此目录中。src/samples

paho c++ examples

当前示例文件的make文件将失败。

我刚刚向项目提交了一个补丁来修复主构建和示例文件构建。一旦应用了该方法,项目将正确构建,您可以开始破解示例文件。

关于没有安装的c++项目,因为在make文件中没有目标来进行安装。如果您现在想要使用sudo权限将在lib中创建的文件复制到下面。/usr/local/lib/

那么您可以从任何项目访问共享库。