centos编译mqtt
目录1.安装相关依赖2.编译mqtt.c3.编译mtt.cpp1.安装相关依赖yum install build-essential gcc make cmake cmake-gui cmake-curses-guiyum install fakeroot fakeroot devscripts dh-make lsb-releaseyum install libssl-devyum instal
目录
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的头文件和库文件的名字。
更多推荐
所有评论(0)