正确用CLion打开ROS2程序

之前的操作遇到的问题

我们在之前通过终端创建了一个简单输出的ROS2节点,通过终端运行发现没有问题,但是,后来在用CLion进行代码编辑的时候发现,没有编译器该有的代码补全提示,在网上找了很久,不是省点模式的原因,也不是clang设置的原因,最后发现是打开方式不对。

解决方案

首先,在编译(也就是使用colcon build)的时候需要加一个参数——CMAKE_EXPORT_COMPILE_COMMANDS,这个参数是用来生成compile_commands.json文件的,默认不开启,关于这个文件,这个文件通常被放在构建目录中,比如build目录下,可以通过软链接或复制将其代码放到源代码目录下,其主要作用为代码补全和语法检查以及支持Clang工具链,或者是项目重构和导航。
具体的编译指令为:

colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

当然在其他博客中也有提到使用如下指令:

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

Ninja也是一种编译规则,这里使用的是Cmake,所以不需要额外的-G参数来指定,(我也试过了,报错主要是)。
编译完成后,会在build文件夹下构建一个compile_commands.json文件,在这里插入图片描述
然后打开CLion,文件|打开选择该文件,并选择作为项目打开,
在这里插入图片描述
这样就打开了文件,当然还需要一步,由于.json是在build目录下的,所以CLion会把build目录当作根目录,这里还需要将根目录更改为工作空间,具体操作为:工具|编译数据库|更改目录根,不过貌似更改之后没有提示,所以需要自己多留意一点。

其他构建的方法

在其他博客中有了解到,好像在CmakeLists.txt中也可以添加指令达到类似的效果。我也去尝试了以下,具体操作如下:
首先我在CLion中安全删除了.json文件,然后在CmakeLists.txt文件中加入了如下的语句:

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

重新colcon build发现在build目录下确实再一次生成了.json文件。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值