ROS2 用Clion调试C++程序要点(包括Could NOT find FastRTPS 的解决方案)

ROS2 用Clion调试C++程序要点(包括Could NOT find FastRTPS 的解决方案)

摘要

环境为ROS2,Clion已安装完成,具体怎么下载Clion可以参考他人的教程,此回答不再讲。
在学习ROS2时,对C++不是特别熟悉,硬肝官网的代码例程时挺费劲的,最好能用IDE对例程里的C++代码进行实时调试、查阅,便于自己理解ROS库里调用的函数。Clion跟pycharm是同一个公司的,界面风格很好,网上看用的人也不少。但是Clion官网的ROS配置教程是ROS1的,并不适用于ROS2,在答主的摸索下,已基本实现了ROS2环境下Clion调试功能,现在把一些经验分享给大家!

流程

  1. 以官网例程(https://index.ros.org/doc/ros2/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber/)为例,在按照此例程创建好包,先不要用colcon编译。这时在devc_ws/src/cpp_pubsub下有包含C++代码的src文件夹、CMakelist.txt和package.xml.
  2. 此时的CMakelist.txt已经按照官网的要求,补充好了各种依赖,但此时不能直接用Clion打开,不然就会出现报错:
Could NOT find FastRTPS(missing: FastRTPS_INCLUDE_DIR FastRTPS_LIBRARIES)

解决方案:在CMakelist.txt中添加两行代码【1】:

set(FastRTPS_INCLUDE_DIR /opt/ros/foxy/include)
set(FastRTPS_LIBRARY_RELEASE /opt/ros/foxy/lib/libfastrtps.so)

这是foxy版本的,如果是其他版本,相应的更改一下 /foxy/ 就行
添加位置在依赖前面就行:

set(FastRTPS_INCLUDE_DIR /opt/ros/foxy/include)
set(FastRTPS_LIBRARY_RELEASE /opt/ros/foxy/lib/libfastrtps.so)
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)

  1. 打开Clion,在open中打开目标目录下的Cmakelist.txt,以project形式打开。
  2. 还要注意一点,如果是在虚拟机中运行的ubuntu,运行内存要设置大一点,起码3G,不然编译过程中容易卡死。
  3. 这个适合就可以用Clion的debug来调试C++程序了!

参考

【1】: https://answers.ros.org/question/334581/could-not-find-fastrtps-missing-fastrtps_include_dir-fastrtps_libraries/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值