基于Xavier NX模组安装Paho-MQTT C库及Json库并在ROS功能包中调用
- 一、系统环境
- 二、Json 库下载编译
- 三、Paho C库下载编译
- 四、ROS中调用Paho C库及Json库
一、系统环境
Ubuntu 18.04 + ROS Melodic
二、Json 库下载编译
1、下载Json源码
注意:对于jsoncpp最好安装高版本,对于0.5.0这种低版本不支持UInt64、Int64这种数据。
源码地址: https:
百度云链接:https://pan.baidu.com/s/1mJNxHxkbpoF9Di030HNBGQ
提取码:gess
2、使用CMake编译Json源码
unzip jsoncpp-0.y.z.zip
cd jsoncpp-0.y.z
mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=debug -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=. -G "Unix Makefiles" ../..
make
cd build/debug
make && make install
sudo make install
编译scons
注: scons是一个Python写的自动化构建工具,从构建这个角度说,它跟GNU make是同一类的工具。
它是一种改进,并跨平台的gnu make替代工具,其集成功能类似于autoconf/automake 。
scons是一个更简便,更可靠,更高效的编译软件。
SCONS 2.2.0链接:https://pan.baidu.com/s/1bCWG0MGPZ1cit2RBTnxdtw
提取码:xq68
tar -zxvf scons-2.2.0.tar.gz
export MYSCONS=解压的路径
export SCONS_LIB_DIR=$MYSCONS/engine
cd ~/SDK_Lib/jsoncpp-0.y.z
python $MYSCONS/script/scons platform=linux-gcc
编译通过后可在jsoncpp-0.y.z/libs/linux-gcc-4.4.7目录下,如下所示
三、Paho C库下载编译
1、下载Paho C库
git clone https:
2、安装Paho C库
cd paho.mqtt.c
make
sudo make install
在make完之后,在paho.mqtt.c/build/output下可以找到如下的输出文件,说明安装完成。
四、ROS中调用Paho C库及Json库
1、新建ROS功能包 robot_sdk
cd ~/catkin_ws/src
catkin_create_pkg robot_sdk rospy rosmsg roscpp
mkdir lib
2、将Json库中的头文件复制到ROS功能包中
cd ~/SDK_Lib/jsoncpp-0.y.z/include
cp -r json/ ~catkin_ws/src/robot_sdk/include
3、将jsoncpp-0.y.z/libs/linux-gcc-4.4.7中的 libjson_linux-gcc-7_libmt.a libjson_linux-gcc-7_libmt.so文件复制到lib文件下,同时为方便更名为libjson.a libjson.so
4、将libjson.a libjson.so复制到 usr/lib 目录下
5、将paho.mqtt.c编译/SDK_Lib/paho.mqtt.c/build/output
输出的 .a .so文件复制到ROS功能包下的lib文件下
6、修改ROS包中的CmakeLists.txt文件
include_directories(
${catkin_INCLUDE_DIRS}
include
)
link_directories(
${catkin_LIB_DIRS}
lib
)
target_link_libraries(robot_sdk
${catkin_LIBRARIES}
libpaho-mqtt3c.so # library name
libpaho-mqtt3a.so
json
)
6、后续可在文件中增加如下进行Json库及Paho MQTT库的使用
#include "json/json.h"
#include "MQTTClient.h"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)