catkin_make 只编译一个包

来源于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

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章