clion ros2 代码 build run debug编译运行断点调试

本文介绍了如何在Ubuntu环境下使用CLion打开、编译和调试ROS2工程。通过colcon编译工作空间,配置CLion以读取compile_commands.json,然后创建自定义构建目标和调试配置,包括解决无法设置断点的问题。文章提供了详细的步骤和命令示例。
摘要由CSDN通过智能技术生成

本文主要介绍Ubuntu 使用clion调试运行ros2的代码,整体配置上比ros1.0繁琐一些,但并不是特别复杂

一、clion打开ros2工程

1.1 编译ros2工作空间:

colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja

此时在 ~/ros2_ws/build下会生产文件compile_commands.json。

1.2 启动clion

启动clion前需要source一下工作空间

source ~/ros2_ws/src/setup.bash
然后再这个窗口里启动
./clion    #注意这个需要使用cd命令切换到clion的安装路径下才可以哈

1.3 clion打开ros2工作空间

点击 File | Open选择 ~/ros2/build/compile_commands.json文件。并以工程形式打开
在这里插入图片描述
在这里插入图片描述

1.4 更改工程根目录

点击Tools | Compilation Database | Change Project Root 选择 ros2_ws 作为根目录
在这里插入图片描述
到此可以使用clion开发ros2的代码了,但此时还不能使用clion编译和debug。

二、使用clion编译整个ros2工程

这步和debug程序没啥关系,只是让大家知道可以通过clion编译整个工程,方便快捷。debug程序需要看第三部分。
这里需要使用clion的external tool 来实现colcon build功能。
点击Settings | Tools | External Tools 点击+号,新增一个tool。具体填写内容就是之前编译ros2工作空间的命令,按下图填写:(确保自己是自己的工作路径,这里图片上的路径不是Ubuntu系统的,例如:~/ros2_ws)
在这里插入图片描述保存这个工具。在clion的主页面的工具栏点击 Tools | External Tools 选择 colcon build,此时就可以编译整个工作空间了。
Make sure to reload the compilation database (press Ctrl+Shift+O or call Tools | Compilation Database | Reload Compilation Database Project form the main menu). To avoid reloading the project manually, configure auto-reload.

三、clion编译与debug调试程序

第二部分编译是编译了整个工作空间,和debug程序并没啥关系,这里开始编译调试功能包。

3.1 创建cmake_command.bat命令脚本

在自己的功能包下新建一个文件命名为 cmake_commands.bat,这里以ros2的example代码为例:
执行chmod 777 cmake_commands.bat
在这里插入图片描述在cmake_command.bat文件中填入下面这些内容:(具体路径需要根据自己实际情况更改)

/usr/bin/cmake  /home/jack/ros2_ws/src/examples_rclcpp_minimal_publisher  -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja -DCMAKE_INSTALL_PREFIX=/home/jack/ros2_ws/install/examples_rclcpp_minimal_publisher
/usr/bin/cmake --build   /home/jack/ros2_ws/build/examples_rclcpp_minimal_publisher -- -j8 -l8
/usr/bin/cmake --install /home/jack/ros2_ws/build/examples_rclcpp_minimal_publisher

3.2 创建custom build target

Settings | Build, Execution, Deployment | Custom Build Targets点击 + 号 增加一个新的target。
填入name, 并在 build那一栏的末尾点击那个三个点的小按钮。点击+号添加一个external tools ,选择自己刚刚创建的那个cmake_command.bat文件。具体填写按下图内容修改就行:注意working directory一栏不要写错位置
在这里插入图片描述
然后保存即可。

3.3 配置run/debug功能

在clion主页点击Run | Edit Configurations点击+号,选择 Custom Build Application,在target一栏中选择自己刚刚生成的那个命令,在excutable一栏中选择自己要执行的可执行文件名称,Ubuntu ros2 的路径为:
(/home/jack/ros2_ws/install/examples_rclcpp_minimal_publisher/lib/examples_rclcpp_minimal_publisher),这个需要根据自己实际情况更改。
在这里插入图片描述此时点击 run和debug就可以正常使用了。

3.4 不能断点调试的解决办法

如果debug时候不能设置断点,则需要在CMakeLists.txt文件中加入下面这行命令就可以了:

SET(CMAKE_BUILD_TYPE "Debug")

此时可以正常断点调试代码了。

clion官方文档:
https://www.jetbrains.com/help/clion/ros2-tutorial.html?keymap=secondary_sublime_text#create-ext-tool

也可以参考这个:
https://blog.csdn.net/guaaaaaaa/article/details/126468697

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值