catkin_make 和catkin build的 区别

对官网手册的解释做一下引用

https://catkin-tools.readthedocs.io/en/latest/migration.html

Important Distinctions between catkin_make and catkin build
Unlike catkin_make, the catkin command-line tool is not just a thin wrapper around a the cmake and make commands. The catkin build command builds each package in a workspace’s source space in isolation in order to prevent build-time cross-talk. As such, in its simplest use, catkin build behaves similarly to a parallelized version of catkin_make_isolated.

While there are many more features in catkin_tools described in the rest of the documentation, this chapter provides details on how to switch from using catkin_make and catkin_make_isolated. This chapter does not describe advanced features that catkin_tools provides over catkin_make and catkin_make_isolated. For a quick overview of what you can do with catkin build, see the Cheat Sheet.

Implications of Isolation
Build isolation has the following implications for both catkin_make_isolated and catkin build:

There is no “top-level” CMakeLists.txt file in the source space.
Each package in a catkin_tools workspace has its own isolated build space.
Packages built with catkin build can not access variables defined in other Catkin packages in the same workspace.
All targets in each of a package’s dependencies are guaranteed to have been built before the current package.
Packages do not need to define target dependencies on ROS messages built in other packages.
It passes the same CMake command line arguments to multiple packages.
Plain CMake packages can be built if they each have a package.xml file with the appropriate <build_type> tag.
Additional Differences with catkin build
In addition to the differences due to isolation, catkin build is also different from catkin_make_isolated in the following ways:

It builds packages in parallel, using an internal job server to distribute load.
It puts products into hidden directories, and then symbolically links them into the devel space (by default).
It stores persistent configuration options in a .catkin_tools directory at the root of your workspace.
It passes --no-warn-unused-cli to the cmake command since not all packages accept the same CMake arguments.
It generates .catkin files where each source package is listed, individually, instead of just listing the source space for the workspace. This leads to similar ROS_PACKAGE_PATH variables which list each package source space.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值