紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
ros2 orbslam3 build error
-
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()
麻烦各位大佬了