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

    ros2 orbslam3 build error

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

      BackGround: 在Xavier上编译ros2的orbslam包出现错误
      system:Ubuntu 20.04+ros galactic
      error:

      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::RandomInt(int, int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce()'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce(int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DBoW2::FORB::L'
      collect2: error: ld returned 1 exit status
      make[2]: *** [CMakeFiles/mono.dir/build.make:253: mono] Error 1
      make[1]: *** [CMakeFiles/Makefile2:165: CMakeFiles/mono.dir/all] Error 2
      make[1]: *** Waiting for unfinished jobs....
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::RandomInt(int, int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce()'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce(int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DBoW2::FORB::L'
      collect2: error: ld returned 1 exit status
      make[2]: *** [CMakeFiles/stereo.dir/build.make:254: stereo] Error 1
      make[1]: *** [CMakeFiles/Makefile2:111: CMakeFiles/stereo.dir/all] Error 2
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::RandomInt(int, int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce()'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce(int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DBoW2::FORB::L'
      collect2: error: ld returned 1 exit status
      make[2]: *** [CMakeFiles/rgbd.dir/build.make:254: rgbd] Error 1
      make[1]: *** [CMakeFiles/Makefile2:138: CMakeFiles/rgbd.dir/all] Error 2
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::RandomInt(int, int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce()'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DUtils::Random::SeedRandOnce(int)'
      /usr/bin/ld: /home/turtlebot/origin_slam/ORB_SLAM3/lib/libORB_SLAM3.so: undefined reference to `DBoW2::FORB::L'
      collect2: error: ld returned 1 exit status
      make[2]: *** [CMakeFiles/stereo-inertial.dir/build.make:253: stereo-inertial] Error 1
      make[1]: *** [CMakeFiles/Makefile2:84: CMakeFiles/stereo-inertial.dir/all] Error 2
      make: *** [Makefile:141: all] Error 2
      ---
      Failed   <<< orbslam3 [6.54s, exited with code 2]
      
      Summary: 1 package finished [10.4s]
        1 package failed: orbslam3
        1 package had stderr output: orbslam3
      

      我的CMakeLists.txt:

      cmake_minimum_required(VERSION 3.5)
      project(orbslam3)
      
      # You should set the PYTHONPATH to your own python site-packages path
      # set(ENV{PYTHONPATH} "/opt/ros/foxy/lib/python3.8/site-packages/")
      
      set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules)
      
      # 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_package(ament_cmake REQUIRED)
      find_package(rclcpp REQUIRED)
      find_package(sensor_msgs REQUIRED)
      find_package(cv_bridge_orbslam3 REQUIRED)
      find_package(message_filters REQUIRED)
      find_package(Sophus REQUIRED)
      find_package(Pangolin REQUIRED)
      find_package(ORB_SLAM3 REQUIRED)
      find_package(DBoW2 REQUIRED)
      
      
      
      include_directories(
        include
        ${ORB_SLAM3_ROOT_DIR}/include
        ${ORB_SLAM3_ROOT_DIR}/include/CameraModels
        ${OpenCV_INCLUDE_DIRS}
      )
      
      link_directories(
        include
      )
      
      # add_library(libdbo2w SHARED
      # /home/turtlebot/origin_slam/ORB_SLAM3/Thirdparty/DBoW2/DBoW2/BowVector.cpp
      # /home/turtlebot/origin_slam/ORB_SLAM3/Thirdparty/DBoW2/DBoW2/FORB.cpp
      # /home/turtlebot/origin_slam/ORB_SLAM3/Thirdparty/DBoW2/DBoW2/FeatureVector.cpp
      # /home/turtlebot/origin_slam/ORB_SLAM3/Thirdparty/DBoW2/DBoW2/ScoringObject.cpp
      # /home/turtlebot/origin_slam/ORB_SLAM3/Thirdparty/DBoW2/DUtils/Timestamp.cpp
      # /home/turtlebot/origin_slam/ORB_SLAM3/Thirdparty/DBoW2/DUtils/Random.cpp
      # )
      
      
      add_executable(mono
        src/monocular/mono.cpp
        src/monocular/monocular-slam-node.cpp
      )
      ament_target_dependencies(mono rclcpp sensor_msgs cv_bridge_orbslam3 ORB_SLAM3 Pangolin) 
      target_link_libraries(mono DBoW2)
      
      
      add_executable(rgbd
        src/rgbd/rgbd.cpp
        src/rgbd/rgbd-slam-node.cpp
      )
      ament_target_dependencies(rgbd rclcpp sensor_msgs cv_bridge_orbslam3 message_filters ORB_SLAM3 Pangolin)
      target_link_libraries(rgbd DBoW2)
      
      add_executable(stereo
        src/stereo/stereo.cpp
        src/stereo/stereo-slam-node.cpp
      )
      ament_target_dependencies(stereo rclcpp sensor_msgs cv_bridge_orbslam3 message_filters ORB_SLAM3 Pangolin)
      target_link_libraries(stereo DBoW2)
      
      add_executable(stereo-inertial
        src/stereo-inertial/stereo-inertial.cpp
        src/stereo-inertial/stereo-inertial-node.cpp
      )
      ament_target_dependencies(stereo-inertial rclcpp sensor_msgs cv_bridge_orbslam3 ORB_SLAM3 Pangolin)
      target_link_libraries(stereo-inertial DBoW2)
      
      install(TARGETS mono rgbd stereo stereo-inertial
        DESTINATION lib/${PROJECT_NAME})
      
      # Install launch files.
      #install(DIRECTORY launch config vocabulary
      #  DESTINATION share/${PROJECT_NAME}/)
      
      ament_package()
      

      麻烦各位大佬了

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