ROS2基础 | 编译与运行


1 专栏介绍

  本专栏为ROS2的从零基础到应用于落地项目的实用教程,附C++工程级全套代码。
  详情:ROS | 实战教程源码:gorilla_ros_tutorials


2 编译

2.1 编译命令

  上一篇文章提到ROS2的工程编译是使用colcon build命令,它所依赖的构建工具是ament,ament的作用是用于管理ROS2功能包的构建、依赖解析和安装等操作。ament_cmake是ament工具集的一部分,它结合了CMake来实现ROS2 C++功能包的编译和构建。
  说白点,ament_cmake只是基于CMake又封装了一层,本质上还是cmake的编译方式。
  colcon build命令本身可以自带很多参数,另外也兼容cmake的参数,只需在前面加上–cmake-args即可,详细参考:colcon build -h

2.2 编译结果描述

  使用colcon build命令后,它会生成build、install、log三个目录。

  • build目录:包含了编译过程中生成的中间文件和构建配置文件;
  • install目录:最终安装构建结果的地方。当colcon build成功后,所有构建好的可执行文件、库文件、头文件、配置文件及其他相关资源都会被安装到install目录下;
  • log目录:存储构建过程中产生的日志文件。

  我们最关心的是install内的可执行文件、xxx.so和配置文件,其他的都可以删除。除非特别指定位置,一般情况,可执行文件和xxx.so都在install/package name/lib下,配置文件在install/package name/share内。
例如:hello_world项目,可执行程序在./install/hello_world/lib/hello_world/下,暂无*.so和配置文件。

2.3 注意事项

  当项目中修改了CMakeLists.txt文件时,最好将build、install、log目录都删除,避免编译时出现奇怪的问题
  编译时带上-DCMAKE_EXPORT_COMPILE_COMMANDS=ON选项,它指示CMake在build目录下生成一个名为compile_commands.json的文件。这个文件包含了项目中每个源文件的完整编译命令。

colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

  compile_commands.json文件最大的作用在于集成开发环境(IDE)的支持,使得IDE可以提供代码导航、语法检查、智能提示等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值