1:搭建lio-sam所需要gtsam 依赖已经放在depends文件夹里面 wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/ cd ~/Downloads/gtsam-4.0.2/ mkdir build && cd build cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF .. sudo make instal 如果出现以下错误: -- Found TBB: /usr/include (found suitable version "2020.1", minimum required is "4.4") found components: tbb tbbmalloc -- Could NOT find MKL (missing: MKL_INCLUDE_DIR MKL_LIBRARIES) -- Found OpenMP_C: -fopenmp (found version "4.5") -- Found OpenMP_CXX: -fopenmp (found version "4.5") -- Found OpenMP: TRUE (found version "4.5") -- Found Eigen version: 3.3.7 CMake Error at wrap/CMakeLists.txt:32 (target_link_libraries): The "debug" argument must be followed by a library. -- Configuring incomplete, errors occurred! See also "/opt/ykcnnc/libs/libs/gtsam-4.0.2/build/CMakeFiles/CMakeOutput.log". See also "/opt/ykcnnc/libs/libs/gtsam-4.0.2/build/CMakeFiles/CMakeError.log". 1. 找到gtsam/wrap/CMakeLists.txt文件,注释掉debug部分 set(WRAP_BOOST_LIBRARIES optimized ${Boost_FILESYSTEM_LIBRARY_RELEASE} ${Boost_SYSTEM_LIBRARY_RELEASE} ${Boost_THREAD_LIBRARY_RELEASE} # debug #${Boost_FILESYSTEM_LIBRARY_DEBUG} #${Boost_SYSTEM_LIBRARY_DEBUG} #${Boost_THREAD_LIBRARY_DEBUG} ) 2. 找到gtsam/CMakeLists.txt文件,注释掉debug部分 if (GTSAM_DISABLE_NEW_TIMERS) message("WARNING: GTSAM timing instrumentation manually disabled") list_append_cache(GTSAM_COMPILE_DEFINITIONS_PUBLIC DGTSAM_DISABLE_NEW_TIMERS) else() if(Boost_TIMER_LIBRARY) list(APPEND GTSAM_BOOST_LIBRARIES optimized ${Boost_TIMER_LIBRARY_RELEASE} optimized ${Boost_CHRONO_LIBRARY_RELEASE} #debug ${Boost_TIMER_LIBRARY_DEBUG} #debug ${Boost_CHRONO_LIBRARY_DEBUG} ) else() list(APPEND GTSAM_BOOST_LIBRARIES rt) # When using the header-only boost timer library, need -lrt message("WARNING: GTSAM timing instrumentation will use the older, less accurate, Boost timer library because boost older than 1.48 was found.") endif() endif() 3: 重新编译 2: 出现以下错误时 Could not find a package configuration file provided by "tf2_sensor_msgs" with any of the following names: tf2_sensor_msgsConfig.cmake tf2_sensor_msgs-config.cmake 执行如下操作: sudo apt-get install ros-noetic-tf2-sensor-msgs 3:出现以下错误时 Could not find a package configuration file provided by "costmap_converter" with any of the following names: costmap_converterConfig.cmake costmap_converter-config.cmake 执行如下操作: sudo apt-get install ros-noetic-costmap-converter 4: 出现以下错误时 Could not find a package configuration file provided by "mbf_costmap_core" with any of the following names: mbf_costmap_coreConfig.cmake mbf_costmap_core-config.cmake 执行如下操作: sudo apt-get install ros-noetic-mbf-costmap-core 5: 出现如下错误时: Could not find a package configuration file provided by "mbf_msgs" with any of the following names: mbf_msgsConfig.cmake mbf_msgs-config.cmake 执行如下操作: sudo apt-get install ros-noetic-mbf-msgs 6: 出现如下错误时: CMake Error at ros_navigation_ws/teb_local_planner/cmake_modules/FindSUITESPARSE.cmake:131 (MESSAGE): Unable to find SuiteSparse Call Stack (most recent call first): ros_navigation_ws/teb_local_planner/CMakeLists.txt:35 (find_package) 执行如下操作: sudo apt-get install libsuitesparse-dev 7: 出现如下错误时: CMake Error at ros_navigation_ws/teb_local_planner/cmake_modules/FindG2O.cmake:85 (message): Could not find libg2o! Call Stack (most recent call first): ros_navigation_ws/teb_local_planner/CMakeLists.txt:36 (find_package) 执行如下操作: sudo apt-get install ros-noetic-libg2o 8: 出现如下错误时 fatal error: geodesy/utm.h: No such file or directory #include 执行如下操作: sudo apt-get install ros-noetic-geodesy