catkin build和catkin_make的区别和使用

本文详细介绍catkin_tools在ROS工作空间管理中的优势,特别强调catkinbuild在多包环境中的优势,以及catkininit、catkinconfig等工具的使用技巧。推荐catkinbuild作为首选编译工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上找的资料都很碎,最好的资料是官方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

 

### 解决 `catkin_init_workspace` 命令未找到的方法 当遇到 `catkin_init_workspace` 命令未找到的情况时,这通常是由于 ROS 环境变量没有正确设置所致。即使 ROS 已经成功安装,如果环境变量配置不当,仍然会出现此类问题。 #### 检查并更新环境变量 确保已加载正确的 ROS 环境变量。可以通过执行以下命令来完成此操作: ```bash source /opt/ros/<distro>/setup.bash ``` 其中 `<distro>` 需要替换为所使用的 ROS 发行版名称(如 noetic、melodic)。对于每次打开新终端都需要重新加载这些设置的问题,建议将上述命令添加到用户的 `.bashrc` 文件中以便自动应用[^4]。 #### 安装 Catkin 工具包 (可选) 虽然大多数情况下 ROS 的标准安装会包含必要的工具链,但如果确实缺少某些组件,则可能需要单独安装 catkin 工具包: ```bash sudo apt update && sudo apt install python-catkin-tools ros-<distro>-common-msgs ``` 再次提醒这里 `<distro>` 应该被替换成实际使用的 ROS 版本号。 #### 初始化工作空间 一旦确认环境变量已经正确设定,在新的 src 目录下运行初始化命令前,请先进入对应的文件夹路径,比如 ~/catkin_ws/src/ ,之后尝试使用 `catkin init workspace` 或者更常见的形式 `catkin_init_workspace` 来创建一个新的 Catkin 工作区[^1]。 #### 使用替代方法构建项目 值得注意的是,尽管可以直接调用 `catkin_init_workspace` 来准备源码目录结构,但在现代实践中更多推荐采用 `catkin build` 或者直接利用 `catkin_make` 来简化整个流程。不过请注意,`catkin_make` 并不具备独立于其他指令之外的初始化能力;因此一般还是应该先通过适当的方式准备好工作空间后再继续后续步骤[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值