在Ubuntu20.04下編譯Lio-LOAM時,遇到如下問題
/usr/bin/ld: cannot find -lBoost::serialization
/usr/bin/ld: cannot find -lBoost::thread
/usr/bin/ld: cannot find -lBoost::timer
/usr/bin/ld: cannot find -lBoost::chrono
collect2: error: ld returned 1 exit status
查詢so的連結之後并無問題,檔案是存在的,但是系統找不到。想起之前編譯的Kimera-VIO-ros中的CMakeLists中手動找了boost的檔案,是以仿照它的方法,修改了CMakeLists,成功解決問題。
find_package添加boost
find_package(Boost REQUIRED COMPONENTS
serialization timer thread chrono)
directories添加boost
# include directories
include_directories(
include
${catkin_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
${GTSAM_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
)
# link directories
link_directories(
include
${PCL_LIBRARY_DIRS}
${OpenCV_LIBRARY_DIRS}
${GTSAM_LIBRARY_DIRS}
${Boost_INCLUDE_DIRS}
)
至此,編譯完成