背景介绍

阅读源代码,首先应该从头文件入手,ROS集成了许多的头文件,一句

#include<ros/ros.h>

就包含了绝大部分基础代码的头文件,但是这往往让初学者看代码时遇到很大的困扰。

最近本人也从事一些路径规划算法研究,打算利用ROS在机器人上实现,为此一边做学习笔记以便自己复习,另一方面也可以给广大使用ROS的机器人爱好者提供参考。

查找头文件位置

基本的头文件都在这个大文件夹中,/opt/ros/($your version,eg:kinetic)/share/

经过半年多的ROS学习,这里下载的依赖文件就已经有好几百个了。

那么要找的头文件具体是哪个文件夹呢?

roscd 只能到已经添加了路径的已知文件夹,那么未知的可以尝试用locate或mlocate,比如查找ros.h:

locate ros.h

或:

mlocate ros.h

如果不行,先下载updatedb

sudo updatedb

不过返回的东西比你想的多得多,那找个啥子?

一般来讲,上面这个方法适用与找一些作为小基础部分的头文件,而不是像ros.h这样大的总成型头文件。层级如下:

但如果我知道具体是哪个头文件,可用,比如init.h里面的forwards.h:

locate forward.h

特地查看了一下,一般不同的头文件,即使文件名完全相同,里面的内容也不同,只是大致功能是同的。造成这个问题是编程人员编头文件的时候用了太多重名头文件了,或者是timeshif等备份软件做的备份。

可用的读源代码方法

法一:从网站上看

下面是ros.h的源代码网址,点进每个小头文件可以查看不同的代码层级和实例:

http://docs.ros.org/api/roscpp/html/ros_8h_source.html

法二:用vscode查看

这个方法是本人后面才接触到的,许多人也用这个编程、查看等等,由于时间问题,就不展示了。

法三:用roboware查看

打开你想看文件的源代码,然后用右键打开,看到有个英文显示“GO TO DEFINITION”,点击后就可以直查看头文件源代码,甚至可以修改(建议初学者不要修改)。或按Ctrl然后鼠标左键就可进入。

roboware安装教程可以查看

https://blog.csdn.net/lixujie666/article/details/80139112

好了,知道源代码怎么查看之后就可以开始学习了。

参考资料

https://stackoverflow.com/questions/13079650/how-can-i-find-the-header-files-of-the-c-programming-language-in-linux

关于阅读ROS的源代码相关推荐

  1. android源代码下载AE 文字样式,阅读Android framework源代码方式

    阅读Android framework源代码方式 点击标题下「蓝色微信名」可快速关注 阅读源代码的方式有很多,这里只讲其中的两种方式. 一.AndroidXRef(强烈推荐) 这种方式速度快,操作简单 ...

  2. linux 修改内核源码,Source Insight阅读linux内核源代码——根据其他文章修改

    由于Source Insight实质上是一个支持多种开发语言(java,c ,c++等等)的编辑器,只不过由于其查找.定位.彩色显示等功能的强大,而被我们当成源代码阅读工具使用. Step 2:新建项 ...

  3. 每位开发人员都应该阅读的优秀源代码,长啥样?

    作者 | Shalitha Suranga 译者 | 弯月,责编 | 杨碧玉 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 以下为译文: 空闲的时候,我经常浏览G ...

  4. 如何阅读一份源代码?

    作者:codedump,本文已经作者授权. 导语:TDengine是一款优秀的开源物联网大数据平台,肯定很多工程师也想仔细研读一下项目代码,深入了解其优异的性能是如何做到的.从今天开始,我们将推出一系 ...

  5. 如何快速阅读别人的源代码

    网上搜到的一篇介绍阅读别人源代码的方法,放在这里,有空可以查看. 阅读别人的代码作为开发人员是一件经常要做的事情.一个是学习新的编程语言的时候通过阅读别人的代码是一个最好的学习方法,另外是积累编程经验 ...

  6. 阅读分析程序源代码的一些方法(转载整理)

    前言 最近项目组中有较多新成员需要阅读熟悉项目中已有的程序代码,好多成员一时间对项目代码摸不清头绪,这里在网络上收集了相关源代码阅读分析的一些方法,整理于此. 正文 摘自(繁体中文Traditiona ...

  7. autojs快阅读协议脚本源代码免费分享

    //此代码由飞云脚本圈整理提供(www.feiyunjs.com) var page = 1; while (true) {var page=1;var getArticleList = http.p ...

  8. 如何阅读项目工程源代码

    如何阅读项目代码 找到代码入口,可以通过调试,找到子模块的启动接口 画UML图,理清项目结构 记录关键脚本,并标注功能 尝试在原来项目上增加相似功能,理解子模块的使用方式 创建新项目,复制原项目的主要 ...

  9. Q114:阅读PBRT-V3官方源代码的正确姿势

    这里是小编自己看code的笔记. 刚开始看这份code的时候,容易被搞迷糊. 所以,提醒自己一些小技巧. 这里的内容将"持续更新".发现有必要记录的小技巧时都来此更新一下. 1,函 ...

最新文章

  1. java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...
  2. 对比学习还能这样用:字节推出真正的多到多翻译模型mRASP2
  3. C++ JsonCpp 使用(含源码下载)
  4. 充电桩服务器协议,充电桩与云服务器通信协议
  5. 三星集团和华为集团,哪个更厉害?
  6. Asp.Net MVC4.0 官方教程 入门指南之一-- 入门介绍
  7. 破解Navicat for MySql
  8. 把java程序打包成.exe
  9. 3.4.2 - Operators 3.4.3 division and truncation
  10. Biopython -- SeqRecord
  11. 常用通信光缆型号是如何命名的
  12. android 国家代码
  13. 软件测试实验1——语句覆盖、判定覆盖、条件覆盖、路径覆盖的用例设计及Junit测试
  14. 关闭Typora拼写检查功能
  15. 电脑连接蓝牙耳机还是外放,输出设备只有扬声器怎么解决?
  16. liquidFill---实现柱状水滴图
  17. Solution: Cannot start Microsoft outlook. Cannot open the outlook window. Invalid xml
  18. C++程序运算时间计算
  19. Android ViewPager嵌套ViewPager+Fragment问题
  20. 实验三十五 Windows Server 2012 RDS桌面虚拟化之六VDI虚拟桌面的用户管理和安全防护

热门文章

  1. 算法学习:134. 加油站
  2. 华为通信基础面试题库以及答案
  3. 网络ioctl实践1:获取网卡的MAC和IP
  4. 小白白也能学会的 PyQt 教程 —— 图像类及图像相关基础类介绍
  5. 不同音视频传输协议的对比
  6. U盘识别不出来怎么办?
  7. MATLAB中复数矩阵的转置、共轭及共轭转置
  8. 2020中国彩礼地图:哪里娶媳妇最贵?
  9. Android 获取手机系统版本号、获取手机型号、获取手机厂商、获取手机IMEI、获取手机CPU_ABI、获取手机唯一识别码
  10. 《职业形象与商务礼仪》