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

    B站视频“自定义通信接口”跟着学习报错

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    ros2 报错
    2
    2
    287
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 5
      525906221
      最后由 编辑

      fatal error: buitin_interfaces/msg/detail/time__struct.h: 没有那个文件或目录
      22 | #include "buitin_interfaces/msg/detail/time__struct.h"
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      compilation terminated.
      make[2]: *** [CMakeFiles/status_interfaces__rosidl_generator_c.dir/build.make:94:CMakeFiles/status_interfaces__rosidl_generator_c.dir/rosidl_generator_c/status_interfaces/msg/detail/system_status__functions.c.o] 错误 1
      make[1]: *** [CMakeFiles/Makefile2:472:CMakeFiles/status_interfaces__rosidl_generator_c.dir/all] 错误 2
      make[1]: *** 正在等待未完成的任务....

      手动查看了opt/opt/ros/foxy/share/builtin_interfaces里好像确实没有这两个头文件,重新卸载安装builtin_interfaces也没有用

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        你遇到的问题是在编译ROS 2(Foxy版本)程序时,编译器找不到builtin_interfaces/msg/detail/time__struct.h文件。这个错误通常发生在以下几种情况:

        1. ROS 2环境配置不正确:确保你的ROS 2环境已经正确设置。这包括setup.bash文件的正确source。

        2. 依赖包未正确安装:虽然你提到重新安装了builtin_interfaces,但可能是安装过程中出现了问题或者安装后没有正确更新环境。

        3. 路径问题:编译器可能没有正确查找头文件。这可能是由于CMakeLists.txt文件配置错误或者环境变量设置不当。

        4. 版本兼容性问题:如果你从一个不同的ROS 2版本迁移或者升级,可能会遇到版本不兼容的问题。

        解决步骤

        1. 检查ROS 2环境
          确保你的shell会话已经source了ROS 2的setup.bash。你可以通过以下命令来source:

          source /opt/ros/foxy/setup.bash
          

          确保这条命令是在你的终端中执行的,且是在你尝试编译项目之前。

        2. 重新安装builtin_interfaces
          使用ROS 2的包管理器重新安装builtin_interfaces。如果你使用的是apt,可以尝试:

          sudo apt update
          sudo apt install ros-foxy-builtin-interfaces
          

          安装完成后,再次source ROS 2的setup.bash。

        3. 检查CMakeLists.txt
          查看你的项目的CMakeLists.txt文件,确保它正确设置了find_package和其他相关的ROS 2配置。例如:

          find_package(REQUIRED COMPONENTS
            roscpp
            std_msgs
            builtin_interfaces
          )
          
        4. 清理并重新构建
          有时候,旧的构建文件可能会导致问题。尝试清理你的构建目录(通常是build或devel目录),然后重新运行CMake和make:

          cd your_project_directory
          rm -rf build/ devel/
          mkdir build
          cd build
          cmake ..
          make
          
        5. 检查ROS 2版本
          确保你安装和使用的ROS 2版本(这里是Foxy)与你的项目兼容。如果你从其他版本迁移,可能需要更新代码或配置。

        6. 查看错误日志
          如果上述步骤都不能解决问题,仔细检查编译错误和CMake的输出,看看是否有更具体的错误信息。

        通过上述步骤,你应该能够解决编译时遇到的问题。如果问题依旧存在,可能需要更详细地检查你的项目配置或寻求更具体的帮助。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

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