catkin_make 只编译一个包

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_25458977/article/details/103963286


来源于ros wiki上的问题: how to build a single package by catkin_make

一般来讲,在工作空间下,使用catkin_make 将会一次性编译src下所有的包,因为catkin_make 相当于以下命令的集合:

$ cd ~/catkin_ws
$ cd src
$ catkin_init_workspace
$ cd ..
$ mkdir build
$ cd build
$ cmake ../src -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../devel
$ make

但是,如果有一个新添加的包,将源文件等放入到了src下,想要单独进行编译,则可以使用:

catkin_make -DCATKIN_WHITELIST_PACKAGES="package1;package2"

这里可以单独编译package1和package2这两个包,这里需要注意的应该放入的是package的名字,而不是你的文件夹下的文件名;例如,在src下我的文件夹名叫做kvision, 但是具体的package名称是kvision下的package.xml文件中的cam_odo_cal

 

如果是上述原因导致catkin_make 报错提示:package ×× not  found in current workspace, 修改包名为准确的package名称即可;

catkin_make -DCATKIN_WHITELIST_PACKAGES  命令结束后,如果想要再回到那种catkin_make 编译所有包的状态,执行:

catkin_make -DCATKIN_WHITELIST_PACKAGES=""

即可;

在https://answers.ros.org/question/54178/how-to-build-just-one-package-using-catkin_make/ 这个链接中,大神提供了另外的几种单独编译某个包的方法:

1.  使用 --only-pkg-with-deps

catkin_make --only-pkg-with-deps <target_package>

2. 使用catkin)build, 这种情况适用于之前没有编译过的情况,如果之前使用的是catkin_make, 后面使用catkin_build时会有错误提醒,大意就是需要删除之前的编译内容,重新使用catkin_build;

Using Catkin-Tools:
 
#install build tools
sudo apt-get install python-catkin-tools
 
#Build specific package
catkin build <target_package>
 
#Build the package from a directory under the package root
catkin build --this 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值