使用ROS时:为什么我应该使用catkin_tools中的catkin build而不是catkin_make

我被告知catkin build更好,但是没有人告诉我这可以给我一个原因。

评论

他们的文档描述了区别:catkin-tools.readthedocs.io/en/latest/migration.html

#1 楼

主要区别是您使用catkin build获得的隔离环境。这使得整个构建配置更加分隔,并且对配置更改(添加/删除程序包,修改cmake变量等)更健壮。此外,您还可以获得更好,更易于理解的颜色cmdline输出使整个体验更加愉悦。

@SteveO的链接还提供了工具之间变化的一个很好的摘要。

添加到catkin build还可以得到很多其他信息带有catkin的有用子命令,包括用于清洁catkin cleanbuilddevel空间以及installcatkin listcatkin locatecatkin profile

#2 楼

除了隔离的构建,使用起来更加方便:


并行构建独立的程序包,这使得它运行起来更快。

catkin build可以使用可以从工作区中的任何目录访问,而catkin_make仅在顶级目录中运行。
仅构建单个包(带有依赖项)很容易:catkin build package_name或从包目录调用catkin build --this。添加--no-deps可以跳过依赖项。
(请注意,catkin_make具有--only-pkg-with-deps标志,但在那里会导致持久设置,因此仅catkin_make的下一次调用也只会构建此包,这非常不直观。)

catkin clean使得无需使用可怕的rm -rf即可轻松擦除构建/开发。
@bergercookie已经提到了一些其他有用的命令(列表,定位,...)。