【ROS源码阅读】

项目需要研读ROS源码,这其中碰到的一些问题记录一下:

源码编译过程

(1) 在ubuntu 18.04 上安装ROS melodic的版本。
(2) 下载源码,
ROS源码链接:

https://github.com/ros/ros_comm/tree/melodic-devel/ros_comm

(3) 编译
例如想要编译 ros_comm/tools/rosbag 下的源文件,
新建 ros_comm/tools/rosbag/build 文件夹,之后

mdkir builld 
cd build 
cmake ..
make

就可以编译源码了。
但是此时要注意, ros_comm/tools/rosbag/CMakeLists.txt 包含的头文件和库文件大多数是

/opt/ros/melodic/include/

路径下的头文件以及路径

/opt/ros/melodic/lib/

下的库文件
所以,阅读ROS源码时,有时需要加一些打印,发现运行程序后,加的打印没有显示。
原因就是这个,因为此时rosbag产生的程序引用的不是源码生成的头文件和库文件,而是本地的头文件和库文件。
例如,ros_comm/tools/rosbag/CMakeLists.txt 中会引用 rosbag_storage.so 文件,
源码中 ros_comm/tools/rosbag_storage下,进行如下操作

mdkir builld 
cd build 
cmake ..
make

就会产生 librosbag_storage.so 库文件,自己修改的库文件没有被 ros_comm/tools/rosbag/CMakeLists.txt 引用,所以,加的打印无法显示。

使用源码中头文件和库文件的方法

(1) 将路径

/opt/ros/melodic/include/
/opt/ros/melodic/lib/

下的部分头文件和库文件进行改名,例如

mv librosbag_storage.so  librosbag_storage_back.so
mv bag.h bag_back.h

之后编译,如果报错, 就在相应的地方改下载的ROS源码路径和自己生成的库路径即可。

参考链接:
https://www.linmao.dev/joy/914/
https://www.linmao.dev/
https://zhuanlan.zhihu.com/p/494474804
https://blog.csdn.net/lxj362343/article/details/126088735
https://blog.csdn.net/uestcyms/article/details/119959523

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值