在这篇博客中将会介绍,如何在工作空间中构建和使用一个包。

首先,我们来看一下如何在catkin工作空间中,使用catkin_make工具从源文件构建和安装一个包。使用catkin_make来构建一个catkin工作空间是非常容易的,您必须在catkin工作空间的顶层使用catkin_make命令。下面的演示了一个典型的工作流程:

$ cd ~/catkin_ws/src/beginner_tutorials/src# Add/Edit source files$ cd ~/catkin_ws/src/beginner_tutorials# Update CMakeFiles.txt to reflect any changes to your sources$ cd ~/catkin_ws$ catkin_make 

首先打开beginner_tutorials包下面的src文件夹,在里面添加或者编辑源文件。然后回到包 beginner_tutorials的根目录下,更新一下CMakeLists.txt文件,最后回到工作空间的根目录下,使用catkin_make命令进行构建。

上面的流程会将~/catkin_ws/src目录下的包构建到~/catkin_ws/build目录下。任何的源文件、python库、脚本,以及其他的静态文件,将会留在源空间~/catkin_ws/src中。然而所有产生的文件,像库文件、可执行文件以及产生的代码都被放置在devel中。使用如下命令来创建install工作空间:

cd ~/catkin_ws
catkin_make install

上面的两条命令可以用下面一条指令来代替:

cd ~/catkin_ws/build && make install

你可以使用devel或者是install空间,但不能同时使用。他们各有好处,具体情况,应该具体对待。在工作空间中还是推荐使用devel。如果您之前已经有了一个编译好的工作空间,并且您在里面添加了一个新的包,可以使用如下命令将这个包添加进去:

catkin_make --force-cmake

这样我们就完成了一个包的构建。

ROS的学习(五)在工作空间中构建和使用catkin包相关推荐

  1. 【深度学习】在PyTorch中构建高效的自定义数据集

    文章来源于磐创AI,作者磐创AI 学习Dataset类的来龙去脉,使用干净的代码结构,同时最大限度地减少在训练期间管理大量数据的麻烦. 神经网络训练在数据管理上可能很难做到"大规模" ...

  2. 五、Java中常用的API(通过包进行分类)————异常、多线程和Lambda表达式

    之前已经介绍了java.lang包下的相关类,今天将要补充两个常用的API:java.lang.Throwable和java.lang.Thread 一.异常(java.lang.Throwable) ...

  3. 【记录ROS学习(五)2022/08/27】Win版ROS/Noetic 如何添加必要的依赖(rosdep)

    [记录ROS学习(五)2022/08/27]Win版ROS/Noetic 如何添加必要的依赖(rosdep) 近期为了使得更多的设备可以连入ROS,开始转向Windows平台的ROS,遇到一些问题 无 ...

  4. 【AngularJs学习笔记五】AngularJS从构建项目开始

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...

  5. ROS中的roslaunch命令和launch文件(ROS入门学习笔记四)

    ROS中的基本对象和概念学习笔记(ROS入门学习笔记一) ROS中创建工作区和包(ROS入门学习笔记二) ROS功能包中CMakeLists.txt的说明(ROS入门学习笔记三) 1.roslaunc ...

  6. c语言中 程序各步作用,C语言学习网总结C语言学习五步曲

    很多人对C语言的第一感觉就是太难了,很难理解这种语言,也不知道该如何来理解,书也看了,视频也看了,但就是没什么太大的作用,那么C语言究竟该如何来学? C语言作为一门计算机语言,想要真正的掌握并使用需要 ...

  7. 第五篇《深度学习在故障诊断领域中的研究现状与挑战》论文阅读笔记

    [1]任浩,屈剑锋,柴毅,唐秋,叶欣.深度学习在故障诊断领域中的研究现状与挑战[J].控制与决策,2017,32(08):1345-1358. 深度学习在故障诊断领域中的研究现状与挑战 一.文章本身 ...

  8. 了解如何在Google Colaboratory中构建深度学习系统

    原文来自特拉字节:https://telabytes.com/article/preview?id=119 这是练习深度学习的好时机.现有的主要深度学习框架如TensorFlow.Keras和PyTo ...

  9. 【C语言进阶深度学习记录】五 C语言中变量的属性

    上一篇文章学习了C语言中的类型转换,点击链接查看:[C语言进阶深度学习记录]四 C语言中的类型转换. 文章目录 1 C语言的变量属性 1.1 auto关键字 1.2 register关键字 1.3 s ...

最新文章

  1. 优先队列 堆实现 java
  2. Android 更新项目名称
  3. 编写配置文件不能出现帮助信息
  4. 换个姿势学设计模式:策略模式
  5. 笔记-项目合同管理-项目合同谈判与签订-供应商项目立项
  6. 单链表的python实现
  7. 其实没事做,写写博客也不错的
  8. 云原生全景图之五:应用程序定义和开发层
  9. 用单张2D图像重构3D场景
  10. AJAX ControlToolkit学习日志-AnimationExtender控件(3)
  11. Codeforces Round #573 (Div. 2) C. Tokitsukaze and Discard Items
  12. 正确使用 CDN 让你更好规避安全风险
  13. [Windows]笔记本触摸板手势突然不起作用的解决办法
  14. setup maven plugin connection
  15. 1.4.3 ASBR-Summary-LSA
  16. 20172328 蓝墨云实验——三种查找算法练习
  17. linux 汇编 读取软盘,学习x86汇编语言7 使用INT13读取软盘数据
  18. STM32WL开发之LORA开发环境及其Demo例程介绍
  19. FTP工具,你知道的FTP工具有哪些,5款最好用的FTP工具
  20. 将PDF转换为SWF文件

热门文章

  1. [转载] Python 列表(List)
  2. [转载] Numpy 数学函数及逻辑函数
  3. 实验三 密码破解技术 201521410010
  4. (数论)51NOD 1136 欧拉函数
  5. js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...
  6. wamp设置本地访问路径为a.com
  7. javascript中的内存泄漏
  8. android scrollview listview显示不全
  9. Chapter 7 代理模式
  10. [转]WINDOW进程通信的几种方式