我正在 Debian 9 上开发一个 C++ 程序(用于家庭 IoT 项目),需要充当 MQTT 客户端。我发现 paho.mqtt 在这方面会有所帮助,但到目前为止,安装它的在线文档都不起作用。
有谁有让 paho mqtt c++ 客户端在 Debian 9 上工作的经验吗?如果是这样,您能帮我完成需要执行的步骤吗?
(我的背景:我对 Linux 很熟悉,在用 C 或 C++ 编写代码时还可以,但不太熟悉 c++ 编译器的工作原理或在这种情况下如何获取可用于我的程序的 C++ 头文件)
提前致谢!
答案1
我安装了一个库存最小 Debian 9 实例,以具有 sudo 权限的普通用户身份登录并执行以下操作:
sudo apt-get install build-essential gcc make cmake cmake-gui cmake-curses-gui git doxygen graphviz libssl-dev
git clone https://github.com/eclipse/paho.mqtt.c.git
cd paho.mqtt.c
git checkout v1.2.1
cmake -Bbuild -H. -DPAHO_WITH_SSL=ON
sudo cmake --build build/ --target install
sudo ldconfig
cd ..
git clone https://github.com/eclipse/paho.mqtt.cpp
cd paho.mqtt.cpp
cmake -Bbuild -H. -DPAHO_BUILD_DOCUMENTATION=TRUE -DPAHO_BUILD_SAMPLES=TRUE
sudo cmake --build build/ --target install
这给了我一些二进制文件/usr/local/bin/
。我运行了其中一个 ( /usr/local/bin/sync_publish
) 并得到:
/usr/local/bin/sync_publish: error while loading shared libraries: libpaho-mqttpp3.so.1: cannot open shared object file: No such file or directory
我通过这样做解决了这个问题sudo ldconfig
。