项目需要研读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 引用,所以,加的打印无法显示。
ROS源码编译及使用头文件和库文件方法

博主记录研读ROS源码时遇到的问题。介绍了在Ubuntu 18.04上安装ROS melodic版本后,下载并编译源码的过程,还指出阅读源码加打印不显示是因程序引用本地而非源码生成的头文件和库文件,同时给出使用源码中头文件和库文件的方法。
最低0.47元/天 解锁文章
3733

被折叠的 条评论
为什么被折叠?



