在VSLAM十四讲CH7中使用原文Cmakelist,原文~/slambook2-master/ch7/pose_estimation_3d2d.cpp构建程序时,报错:
ld returned 1 exit status or undefined reference to 'fmt::V8::detail::throw_format_error'。
/usr/bin/ld: CMakeFiles/pose_estimation_3d2d.dir/pose_estimation_3d2d.cpp.o: in function `unsigned long long fmt::v8::detail::width_checker<fmt::v8::detail::error_handler>::operator()<float, 0>(float) [clone .isra.0]':
pose_estimation_3d2d.cpp:(.text+0xe): undefined reference to `fmt::v8::detail::throw_format_error(char const*)'
和
collect2: error: ld returned 1 exit status
是因为没有链接fmt库,链接上fmt 库应该就没问题。原文Cmakelist中:
add_executable(pose_estimation_3d2d pose_estimation_3d2d.cpp)
target_link_libraries(pose_estimation_3d2d
g2o_core g2o_stuff
${OpenCV_LIBS})
补充链接上fmt 库就可以了。原文Cmakelist修改为:
add_executable(pose_estimation_3d2d pose_estimation_3d2d.cpp)
target_link_libraries(pose_estimation_3d2d ${Sophus_LIBRARIES} fmt)
target_link_libraries(pose_estimation_3d2d
g2o_core g2o_stuff
${OpenCV_LIBS})
就可以正常构建了。