您当前的位置: 首页 > 

鱼香ROS

暂无认证

  • 0浏览

    0关注

    498博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ROS2前置基础教程 | 小鱼教你用CMake依赖查找流程

鱼香ROS 发布时间:2022-06-17 18:26:31 ,浏览量:0

CMake依赖查找流程 写在前面
  1. 当前平台文章汇总地址:ROS2机器人从入门到实战
  2. 获取完整教程及配套资料代码,请关注公众号获取
  3. 教程配套机器人开发平台:两驱版| 四驱版
  4. 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn

上面我们用g++、make、cmake三种方式来编译ros2的C++节点。用cmake虽然成功了,但是CMakeLists.txt的内容依然非常的臃肿,我们需要将其进一步的简化。

1.优化CMakeList.txt

将上面的CmakLists.txt改成下面的样子

cmake_minimum_required(VERSION 3.22)
project(first_node)

find_package(rclcpp REQUIRED)
add_executable(first_node first_ros2_node.cpp)
target_link_libraries(first_node rclcpp::rclcpp)

接着继续生成和编译

cmake ..
make

图片

是不是非常的神奇,为什么可以浓缩成那么短的几句指令呢?

2.find_package查找路径

find_package查找路径对应的环境变量如下。

_DIR
CMAKE_PREFIX_PATH
CMAKE_FRAMEWORK_PATH
CMAKE_APPBUNDLE_PATH
PATH

打开终端,输入指令:

echo $PATH

结果

PATH=/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

观察PATH变量,你会发现/opt/ros/humble/bin赫然在其中,PATH中的路径如果以binsbin结尾,则自动回退到上一级目录,接着检查这些目录下的

/(lib/|lib|share)/cmake/*/          (U)/(lib/|lib|share)/*/                (U)/(lib/|lib|share)/*/(cmake|CMake)/  (U)

cmake找到这些目录后,会开始依次找Config.cmakeFind.cmake文件。找到后即可执行该文件并生成相关链接信息。

打开/opt/ros/humble/share/rclcpp/cmake你会发现rclcppConfig.cmake就在其中。

3.总结

本节小鱼带你通过多种方式进行节点的编译,主要是让你了解C++编译工具cmake以及其路径查找规则,以后在学习生涯中再遇到undefined reference to xxxxx No such file or directory就再也不用慌张了。

ROS2前置教程汇总:

我因我们而存在,Ubuntu也有哲学意义

ROS2前置教程|在虚拟机中安装Ubuntu

ROS2前置教程 | 玩转Ubuntu之常用指令

ROS2前置教程|玩转Ubuntu之编程工具

ROS2前置教程 | 玩转Ubuntu之常用软件

ROS2前置基础教程 | 小鱼教你用g++编译ROS2节点

ROS2进阶教程汇总:

ROS2进阶教程| ROS2系统架构之操作系统打假

ROS2前置基础教程 | 使用CMakeLists.txt编译ROS2节点

关注
打赏
1666092100
查看更多评论
立即登录/注册

微信扫码登录

0.0691s