安装并使用C++的MQTT Paho库
问题描述:
我希望我的问题很容易解决。我应该使用MQTT协议与我的树莓派V2,所以现在我正在与泛美卫生组织库尝试它:安装并使用C++的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
(我发现它在文档中),但编译器没有找到它。 - 为什么C++程序启动Paho的库不会安装任何东西?只有make命令创建库
lib/linmqttpp.so.0.1
。我必须在编译命令中链接它?怎么样?
答
目前在git项目中的paho C++,它不能为新用户正确构建。它创建一个空的C++库,当你做一个make,所以你链接的任何代码将失败,未定义的方法。您可以通过运行此命令来查看库中的可用内容。
nm -g lib/linmqttpp.so.0.1
你会看到它是空的。
此外,如果您复制并从网站传递的示例代码,那么它将无法正常工作。除了网站上的内容外,它还需要其他代码。它只是给你一个代码片段。
示例代码位于此目录中。 src/samples
目前的样本文件make文件将失败。
我刚刚提交了一个补丁到项目来修复主要构建和示例文件构建。一旦应用该项目将正确构建,您可以开始黑客入侵示例文件。
关于C++项目没有安装它,因为make文件中没有目标进行安装。如果您现在想要使用sudo权限将lib中创建的文件复制到下面的文件中。 /usr/local/lib/
然后您可以从任何项目访问共享库。
你在说什么git与c__有什么关系?___ –
@johnny 5我想知道我是否以错误的方式安装了C++库。我如何编译我的C++文件?有没有与-l选项链接的库?当我运行'g ++ -o example example.cpp'时,返回一个错误,导致编译器找不到我包含的头文件(例如'client.h',其中定义了'mqtt'类)。如果有人能解释我如何安装,包含和编译,我将不胜感激。我不明白如何在我必须用C++编译的文件中调用库。 – thoraz