天天看點

/usr/bin/ld: cannot find -lBoost::serialization問題解決

在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}
)
           

至此,編譯完成

/usr/bin/ld: cannot find -lBoost::serialization問題解決

繼續閱讀