【Linux---NX】基于Xavier NX模组安装Paho-MQTT C库及Json库并在ROS功能包中调用

本文详细指导如何在Ubuntu 18.04的ROS Melodic环境下下载和编译Jsoncpp和PahoC库,然后在ROS功能包中集成它们,包括下载链接、CMake配置和ROS包配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Xavier NX模组安装Paho-MQTT C库及Json库并在ROS功能包中调用

一、系统环境

Ubuntu 18.04 + ROS Melodic

二、Json 库下载编译

1、下载Json源码

注意:对于jsoncpp最好安装高版本,对于0.5.0这种低版本不支持UInt64、Int64这种数据。

源码地址: https://github.com/open-source-parsers/jsoncpp/tree/0.y.z

百度云链接: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" ../..

Cmake

make

make

cd build/debug
make && make install
sudo make install

make && make intall
编译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

scon
编译通过后可在jsoncpp-0.y.z/libs/linux-gcc-4.4.7目录下,如下所示
aso

三、Paho C库下载编译

1、下载Paho C库

git clone https://github.com/eclipse/paho.mqtt.c.git

gitclone
2、安装Paho C库

cd paho.mqtt.c
make

make

sudo make install

make-install
在make完之后,在paho.mqtt.c/build/output下可以找到如下的输出文件,说明安装完成。
output

四、ROS中调用Paho C库及Json库

1、新建ROS功能包 robot_sdk

cd ~/catkin_ws/src
catkin_create_pkg robot_sdk rospy rosmsg roscpp
//新建lib库
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"

黎明就在眼前

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡泡吐泡泡啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值