ROS使用catkin_make编译单个功能包和所有功能包

编译功能包

catkin_make -DCATKIN_WHITELIST_PACKAGES="需要单独编译的包名"

但是如再次使用catkin_make编译所有功能包时会出现仅仅只编译上次设置的单独功能包,如果想要再次使用catkin_make编译所有功能包,需要执行:

catkin_make -DCATKIN_WHITELIST_PACKAGES=""

切换到所有功能包;

### 使用 `catkin_make` 编译 ROS 简单的教程 #### 准备工作 在开始之前,确保已经创建了一个有效的 Catkin 工作空间,并且该工作空间中含至少一个可以正常构建的 ROS 功能。通常情况下,Catkin 工作空间结构如下所示: ``` catkin_ws/ ├── build/ # 存放编译过程中产生的中间文件 ├── devel/ # 存放生成的目标文件环境设置脚本 └── src/ # 存放源码以及功能 └── package_name/ ├── CMakeLists.txt ├── package.xml └── ... (其他源文件) ``` 如果尚未初始化工作空间,请运行以下命令来完成创建工作空间的任务。 ```bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_init_workspace ``` #### 配置功能 为了能够成功编译某个特定的功能,需确认其配置无误。具体来说,以下是两个重要的文件及其作用: - **CMakeLists.txt**: 定义了如何构建此功能中的目标(如可执行文件或共享库)。它还指定了依赖项其他必要的元数据[^4]。 - **package.xml**: 描述了关于当前软件的信息,括版本号、作者信息以及其他所需组件列表等基本信息[^2]。 假设我们有一个名为 `my_package` 的新项目,则需要检查上述两份文档是否存在并填写正确的内容。 #### 单独编译指定功能 当只需要针对某几个特别感兴趣或者修改过的模块重新制作时,可以通过向 `catkin_make` 添加参数 `-DCATKIN_WHITELIST_PACKAGES` 来实现只处理这些选定的部分而不影响其余部分的状态[^3]。 例如,如果我们只想让系统专注于我们的自定义解决方案而不是整个集合体内的每一个成员单位的话,那么就可以这样操作: ```bash cd ~/catkin_ws/ catkin_make -DCATKIN_WHITELIST_PACKAGES="my_package" ``` 这条指令告诉工具链仅限于对名称匹配为 `"my_package"` 的那个子集实施动作序列;与此同时忽略掉其他的同级目录下的其它兄弟姐妹们的存在与否状态变化情况等等因素干扰[^1]。 另外需要注意的是,在某些特殊环境下比如 WSL 或者虚拟机当中可能会遇到一些意想不到的情况比如说错误地关联到了 Conda 环境之类的状况发生。此时可能就需要额外采取措施清除潜在污染源的影响范围以便恢复正常秩序运作模式下去继续推进后续流程步骤直至最终达成预期成果为止[^5]。 通过以上介绍应该可以帮助初学者快速掌握利用 `catkin_make` 对单一 ros 节点进行独立打部署的方法技巧要点所在啦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值