catkin build和catkin_make的区别和使用

网上找的资料都很碎,最好的资料是官方github文档:

https://github.com/catkin/catkin_tools

https://catkin-tools.readthedocs.io/en/latest/quick_start.html#initializing-a-new-workspace

里面详细介绍了catkin家族各种工具的使用方法和区别,自行阅读吧。

简单来说,如果ros的工作空间 (workspace) 中只有一个ros包(ros package),那么catkin_make和catkin build区别不大;

如果一个caktin workspace里有多个ros包,那么catkin build显然是更好的编译工具。

因为catkin_make只是几行Cmake和make指令的简写,不管里面有几个包都一起编译了。

但是catkin_build会将工作空间里所有的包同时单独(isolated)编译,编译过程互不影响。

配合catkin init,catkin config, catkin create pkg, catkin build, catkin list, catkin clean等工具使用效果更佳哟。

catkin init可以初始化workspace,而且初始化后,在workspace下的任何一个子目录里使用catkin工具,都相当于在workspace文件夹下使用,它会自动感知workspace。

catkin config可以查看workspace的结构和参数。

catkin config --merge-devel可以使得每个包编译得到的devel产物都在同一个devel文件夹里,当然也可以用catkin config --isolate-devel使得各个包的devel分开。

catkin list可以查看工作空间中有哪些ros包。

catkin clean相当于rm -r ${build} ${devel},但是避免了rm -r这种危险的操作!

总之,推荐使用catkin build

 

你可能感兴趣的:(ubuntu,ros,ubuntu,c++,经验分享)