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

    vm虚拟机+ubuntu20+ros2,添加接口后报错,cmake过不去

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros2 添加接口 cmake报错
    3
    22
    3.1k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 练剑的书生练
      练剑的书生 @一只活跃的新手
      最后由 编辑

      @一只活跃的新手 没有

      一只活跃的新手一 1 条回复 最后回复 回复 引用 0
      • 一只活跃的新手一
        新手而已 @练剑的书生
        最后由 编辑

        @练剑的书生 请问你也是之前一直用Python的吗

        练剑的书生练 1 条回复 最后回复 回复 引用 0
        • 练剑的书生练
          练剑的书生 @一只活跃的新手
          最后由 编辑

          @一只活跃的新手 刚开始学习

          一只活跃的新手一 1 条回复 最后回复 回复 引用 0
          • 一只活跃的新手一
            新手而已 @练剑的书生
            最后由 编辑

            @练剑的书生 我也是,我在前面章节都是用的Python实现,用的rclpy
            到这就出问题了

            1 条回复 最后回复 回复 引用 0
            • 小鱼小
              小鱼 技术大佬 @练剑的书生
              最后由 编辑

              @练剑的书生 提供下Novel.msg内容和你的目录结构,另外试试直接colcon build所有的试试。

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

              练剑的书生练 1 条回复 最后回复 回复 引用 0
              • 练剑的书生练
                练剑的书生 @小鱼
                最后由 编辑

                @小鱼 bf906ed5-06df-47bd-a7e6-8fa33a468573-image.png

                小鱼小 1 条回复 最后回复 回复 引用 0
                • 小鱼小
                  小鱼 技术大佬 @练剑的书生
                  最后由 编辑

                  @练剑的书生 可以用复制粘贴的方式把报错贴一下吗,我好去检索下

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

                  练剑的书生练 1 条回复 最后回复 回复 引用 0
                  • 练剑的书生练
                    练剑的书生 @小鱼
                    最后由 小鱼 编辑

                    @小鱼

                    gsl@gsl-virtual-machine:~/桌面/colcon_test/town_ws$ colcon build
                    Starting >>> village_interfaces
                    Starting >>> village_li
                    --- stderr: village_interfaces                                                         
                    CMake Error at /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:240 (list):
                      list index: 1 out of range (-1, 0)
                    Call Stack (most recent call first):
                      CMakeLists.txt:37 (rosidl_generate_interfaces)
                    
                    
                    CMake Error at /opt/ros/foxy/share/rosidl_generator_c/cmake/rosidl_generator_c_generate_interfaces.cmake:65 (message):
                      Target dependency
                      '/colcon_test/town_ws/build/village_interfaces/rosidl_adapter/village_interfaces/msg/Novel.idl'
                      does not exist
                    Call Stack (most recent call first):
                      /opt/ros/foxy/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:48 (include)
                      /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:286 (ament_execute_extensions)
                      CMakeLists.txt:37 (rosidl_generate_interfaces)
                    
                    
                    make: *** [Makefile:222:cmake_check_build_system] 错误 1
                    ---
                    Failed   <<< village_interfaces [1.01s, exited with code 2]
                    Aborted  <<< village_li [1.20s]                     
                    
                    Summary: 0 packages finished [1.42s]
                      1 package failed: village_interfaces
                      1 package aborted: village_li
                      1 package had stderr output: village_interfaces
                      1 package not processed
                    
                    小鱼小 1 条回复 最后回复 回复 引用 0
                    • 小鱼小
                      小鱼 技术大佬 @练剑的书生
                      最后由 编辑

                      @练剑的书生 我找了下源码测试下,发现没有问题,同foxy版本。

                      root@097c0c2d6b66:/home/mouse/code/github/ros2_town# colcon build
                      Starting >>> village_interfaces
                      Finished <<< village_interfaces [6.30s]                     
                      Starting >>> village_li
                      Starting >>> village_wang
                      Starting >>> village_zhang
                      Finished <<< village_li [0.89s]                                                                               
                      Finished <<< village_zhang [4.31s]                                                                  
                      Finished <<< village_wang [7.31s]                      
                      
                      Summary: 4 packages finished [13.7s]
                      root@097c0c2d6b66:/home/mouse/code/github/ros2_town# echo $ROS_DISTRO
                      foxy
                      

                      源码地址:https://github.com/fishros/ros2_town

                      请你下载源码后直接编译看看,排除是代码问题

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

                      练剑的书生练 1 条回复 最后回复 回复 引用 0
                      • 练剑的书生练
                        练剑的书生 @小鱼
                        最后由 编辑

                        @小鱼 下载下来编译还是这个样子,像是cmake环境有问题了

                        小鱼小 1 条回复 最后回复 回复 引用 0
                        • 小鱼小
                          小鱼 技术大佬 @练剑的书生
                          最后由 小鱼 编辑

                          @练剑的书生 你装的是桌面版的ROS2吗,我也怀疑编译工具问题,你在village_interfaces文件夹下试一下下面的语句

                          source /opt/ros/foxy/setup.bash
                          mkdir build
                          cd build
                          cmake ..
                          make
                          

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

                          练剑的书生练 1 条回复 最后回复 回复 引用 0
                          • 练剑的书生练
                            练剑的书生 @小鱼
                            最后由 编辑

                            @小鱼 是桌面版
                            -- The C compiler identification is GNU 9.4.0
                            -- The CXX compiler identification is GNU 9.4.0
                            -- Check for working C compiler: /usr/bin/cc
                            -- Check for working C compiler: /usr/bin/cc -- works
                            -- Detecting C compiler ABI info
                            -- Detecting C compiler ABI info - done
                            -- Detecting C compile features
                            -- Detecting C compile features - done
                            -- Check for working CXX compiler: /usr/bin/c++
                            -- Check for working CXX compiler: /usr/bin/c++ -- works
                            -- Detecting CXX compiler ABI info
                            -- Detecting CXX compiler ABI info - done
                            -- Detecting CXX compile features
                            -- Detecting CXX compile features - done
                            -- Found ament_cmake: 0.9.9 (/opt/ros/foxy/share/ament_cmake/cmake)
                            -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3")
                            -- Using PYTHON_EXECUTABLE: /usr/bin/python3
                            -- Found sensor_msgs: 2.0.5 (/opt/ros/foxy/share/sensor_msgs/cmake)
                            -- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c
                            -- Found rosidl_adapter: 1.2.1 (/opt/ros/foxy/share/rosidl_adapter/cmake)
                            -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.1f")
                            -- Found FastRTPS: /opt/ros/foxy/include
                            -- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp
                            -- Found rosidl_default_generators: 1.0.1 (/opt/ros/foxy/share/rosidl_default_generators/cmake)
                            -- Found PythonInterp: /usr/bin/python3 (found version "3.8.10")
                            CMake Error at /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:240 (list):
                            list index: 1 out of range (-1, 0)
                            Call Stack (most recent call first):
                            CMakeLists.txt:26 (rosidl_generate_interfaces)

                            CMake Error at /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:240 (list):
                            list index: 1 out of range (-1, 0)
                            Call Stack (most recent call first):
                            CMakeLists.txt:26 (rosidl_generate_interfaces)

                            CMake Error at /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:240 (list):
                            list index: 1 out of range (-1, 0)
                            Call Stack (most recent call first):
                            CMakeLists.txt:26 (rosidl_generate_interfaces)

                            CMake Error at /opt/ros/foxy/share/rosidl_generator_c/cmake/rosidl_generator_c_generate_interfaces.cmake:65 (message):
                            Target dependency
                            '/src/examples/src/village_interfaces/build/rosidl_adapter/village_interfaces/msg/Novel.idl'
                            does not exist
                            Call Stack (most recent call first):
                            /opt/ros/foxy/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:48 (include)
                            /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:286 (ament_execute_extensions)
                            CMakeLists.txt:26 (rosidl_generate_interfaces)

                            -- Configuring incomplete, errors occurred!
                            See also "/home/gsl/桌面/src/examples/src/village_interfaces/build/CMakeFiles/CMakeOutput.log".

                            小鱼小 1 条回复 最后回复 回复 引用 0
                            • 小鱼小
                              小鱼 技术大佬 @练剑的书生
                              最后由 编辑

                              @练剑的书生 先去掉sensor_msgs依赖以及Novel.msg中的image字段试试

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

                              练剑的书生练 1 条回复 最后回复 回复 引用 0
                              • 练剑的书生练
                                练剑的书生 @小鱼
                                最后由 编辑

                                @小鱼 Starting >>> village_interfaces
                                --- stderr: village_interfaces
                                CMake Error at /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:162 (message):
                                rosidl_generate_interfaces() the passed dependency 'sensor_msgs' has not
                                been found before using find_package()
                                Call Stack (most recent call first):
                                CMakeLists.txt:26 (rosidl_generate_interfaces)


                                Failed <<< village_interfaces [0.45s, exited with code 1]

                                Summary: 0 packages finished [0.65s]
                                1 package failed: village_interfaces
                                1 package had stderr output: village_interfaces
                                3 packages not processed

                                小鱼小 练剑的书生练 2 条回复 最后回复 回复 引用 0
                                • 小鱼小
                                  小鱼 技术大佬 @练剑的书生
                                  最后由 编辑

                                  @练剑的书生 在 vm虚拟机+ubuntu20+ros2,添加接口后报错,cmake过不去 中说:

                                  CMake Error at /opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:162 (message):
                                  rosidl_generate_interfaces() the passed dependency 'sensor_msgs' has not
                                  been found before using find_package()

                                  看到这个错误了,你把CMakeLists.txt中的find_package(sensor_msgs)去掉

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

                                  1 条回复 最后回复 回复 引用 0
                                  • 练剑的书生练
                                    练剑的书生 @练剑的书生
                                    最后由 编辑

                                    @练剑的书生 屏蔽了之后编译是这样的

                                    小鱼小 1 条回复 最后回复 回复 引用 0
                                    • 小鱼小
                                      小鱼 技术大佬 @练剑的书生
                                      最后由 编辑

                                      @练剑的书生 贴一下你的CMakeLists.txt,应该是没删除干净

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

                                      练剑的书生练 1 条回复 最后回复 回复 引用 0
                                      • 练剑的书生练
                                        练剑的书生 @小鱼
                                        最后由 编辑

                                        @小鱼 cmake_minimum_required(VERSION 3.5)
                                        project(village_interfaces)

                                        Default to C99

                                        if(NOT CMAKE_C_STANDARD)
                                        set(CMAKE_C_STANDARD 99)
                                        endif()

                                        Default to C++14

                                        if(NOT CMAKE_CXX_STANDARD)
                                        set(CMAKE_CXX_STANDARD 14)
                                        endif()

                                        if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
                                        add_compile_options(-Wall -Wextra -Wpedantic)
                                        endif()

                                        find dependencies

                                        find_package(ament_cmake REQUIRED)
                                        #find_package(sensor_msgs REQUIRED)
                                        find_package(rosidl_default_generators REQUIRED)

                                        uncomment the following section in order to fill in

                                        further dependencies manually.

                                        find_package(<dependency> REQUIRED)

                                        if(BUILD_TESTING)
                                        find_package(ament_lint_auto REQUIRED)

                                        the following line skips the linter which checks for copyrights

                                        uncomment the line when a copyright and license is not present in all source files

                                        #set(ament_cmake_copyright_FOUND TRUE)

                                        the following line skips cpplint (only works in a git repo)

                                        uncomment the line when this package is not in a git repo

                                        #set(ament_cmake_cpplint_FOUND TRUE)
                                        ament_lint_auto_find_test_dependencies()
                                        endif()

                                        rosidl_generate_interfaces(${PROJECT_NAME}
                                        "msg/Novel.msg"
                                        DEPENDENCIES sensor_msgs
                                        )

                                        ament_package()

                                        小鱼小 1 条回复 最后回复 回复 引用 0
                                        • 小鱼小
                                          小鱼 技术大佬 @练剑的书生
                                          最后由 编辑

                                          @练剑的书生 在 vm虚拟机+ubuntu20+ros2,添加接口后报错,cmake过不去 中说:

                                          DEPENDENCIES sensor_msgs

                                          这里的也要删掉,另外记得用代码块包裹下

                                          代码块
                                          

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

                                          练剑的书生练 1 条回复 最后回复 回复 引用 1
                                          • 练剑的书生练
                                            练剑的书生 @小鱼
                                            最后由 编辑

                                            @小鱼
                                            全部屏蔽了才正常
                                            7c8085dd-fa0f-46d9-b274-7bf31ac79737-image.png

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