鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    catkin_make失败了,然后去github找到下载,还是不行怎么办呀

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    编译失败 catkinmake
    2
    2
    300
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 151367521581
      15136752158
      最后由 编辑

      deaa8118-134a-43d3-96a2-fe174918d4b5-image.png
      58af1207-d6ec-486a-9a68-72b408770c97-image.png

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小鱼小
        小鱼 技术大佬 @15136752158
        最后由 编辑

        @15136752158 你放的位置不一定在要找的目录中,关于g++路径设置可以参考文章

        原文链接: https://fishros.com/d2lros2/#/humble/chapt2/basic/1.使用g++编译ROS2节点

        2.2 编译

        接着我们使用g++来编译first_node节点。正常的话一定会报错。

        g++ first_ros2_node.cpp 
        

        报错内容如下:

        root@490925f19143:~/d2lros2/d2lros2/chapt2/basic# g++ first_ros2_node.cpp 
        first_ros2_node.cpp:3:10: fatal error: rclcpp/rclcpp.hpp: No such file or directory
            3 | #include "rclcpp/rclcpp.hpp"
              |          ^~~~~~~~~~~~~~~~~~~
        compilation terminated.
        

        一定要记住这个错误 No such file or directory,这将是你接下来机器人学习工作生涯中最常见的错误之一。

        接着小鱼来说说错误原因和解决方案。

        原因我们在代码里包含了"rclcpp/rclcpp.hpp"头文件,但是g++找不到这个头文件,解决方法就是告诉g++这个头文件的目录。

        首先我们要找到这个头文件在哪里,这个头文件是ROS2的客户端库,其地址肯定在ROS2的安装目录下,即/opt/ros/humble/include/rclcpp。

        cd /opt/ros/humble/include/rclcpp
        ls rclcpp/* | grep rclcpp.h
        

        ls指令列出命令 | grep rclcpp.h 是对列出的结果进行过滤,只显示包含rclcpp.h的行。

        使用上面的指令,可以看到这个文件确实在这里。

        image-20220603130600648

        接着我们可以用-I(大写i)来为g++指定这个目录,然后再次运行,你会发现依然报错

        g++ first_ros2_node.cpp -I /opt/ros/humble/include/rclcpp/ 
        

        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

        1 条回复 最后回复 回复 引用 0
        • 第一个帖子
          最后一个帖子
        皖ICP备16016415号-7
        Powered by NodeBB | 鱼香ROS