目录

1.安装相关依赖

2.编译mqtt.c

3.编译mqtt.cpp


1.安装相关依赖

yum install build-essential gcc make cmake cmake-gui cmake-curses-gui
yum install fakeroot fakeroot devscripts dh-make lsb-release
yum install libssl-dev
yum install doxygen graphviz

2.编译mqtt.c

The Paho C++ library requires the Paho C library, v1.3.8 or greater, to be built and installed first. More information below.

从github上可以看到,mqtt.cpp是依赖于mqtt.c的,要想编译mqtt.cpp,首先需要编译mqtt.c。

git clone https://github.com/eclipse/paho.mqtt.c.git
cd paho.mqtt.c
mkdir install
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=../install ..
make 
make install

3.编译mqtt.cpp

git clone https://github.com/eclipse/paho.mqtt.cpp
cd paho.mqtt.cpp/
mkdir install 
mkdir build
cd build

然后用下面命令cmake报错

cmake -DPAHO_WITH_SSL=OFF -DCMAKE_INSTALL_PREFIX=../install ..
CMake Error at /usr/local/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find PahoMqttC (missing: PAHO_MQTT_C_LIBRARIES
  PAHO_MQTT_C_INCLUDE_DIRS)

这是因为mqtt.cpp是依赖于mqtt.c的库文件和头文件的,所以将前面编译mqtt.c时的install文件夹拷贝到paho.mqtt.cpp,并且命名为mqtt_c_install.

然后增加-DCMAKE_PREFIX_PATH=../mqtt_c_install/ 指定mqtt.c的库文件和头文件查找路径,重新用下面的命令进行编译。

cmake -DPAHO_WITH_SSL=OFF -DCMAKE_PREFIX_PATH=../mqtt_c_install/ -DCMAKE_INSTALL_PREFIX=../install .. 
make
make install


#当然用下面命令也是可以的,只不过不如一个-DCMAKE_PREFIX_PATH=../mqtt_c_install/简单。
cmake -DPAHO_WITH_SSL=OFF -DPAHO_MQTT_C_LIBRARIES=/home/chw/paho.mqtt.cpp/mqtt_c_install/lib64/libpaho-mqtt3a.so  -DPAHO_MQTT_C_INCLUDE_DIRS=/home/chw/paho.mqtt.cpp/mqtt_c_install/include/ DCMAKE_INSTALL_PREFIX=../install .. 
make
make install

编译完成之后就可以把install里面的lib64以及include拷贝到自己的工程中使用了,这里需要注意mqtt.cpp的头文件是依赖mqtt.c的头文件的, mqtt.cpp的库文件是依赖mqtt.c的库文件的, 所以到手需要把mqtt.cpp的库文件和头文件加到自己的工程中,但是mqtt.c的库文件和头文件也要拷贝过去,只不过不需要再工程文件中增加mqtt.c的头文件和库文件的名字。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐