使用的环境是ubuntu20.04
问题1.安装g2o没有问题,不过在编译整个项目工程时候报错:
"openmp_mutex.h: 30:10: fatal error: g2o/config.h: No such file or directory":
解决办法:
只需要将/thirdparty/g2o/build/g2o下的config.h放到/thirdparty/g2o下:
问题2. No rule to make target 'gmock',needed by '../bin/test_preintegration' . stop
src/ch4/CMakeFiles/test_preintegration.dir/all] Error 2:
解决办法:将/ch4/CmakeList.txt文件内容修改如下:
查找 Google Test,它应该也包含了 Google Mock
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
添加您的库
add_library(${PROJECT_NAME}.ch4
gins_pre_integ.cc
imu_preintegration.cc
g2o_types.cc
)
添加您的测试可执行文件
add_executable(test_preintegration test_preintegration.cc)
链接 Google Test (它应该包含了 gmock) 以及其他依赖项
target_link_libraries(test_preintegration
${GTEST_BOTH_LIBRARIES}
pthread glog gflags ${PROJECT_NAME}.ch4 ${PROJECT_NAME}.ch3 ${PROJECT_NAME}.common
)
添加测试
add_test(NAME test_preintegration COMMAND test_preintegration)
添加其他可执行文件
add_executable(run_gins_pre_integ run_gins_pre_integ.cc)
target_link_libraries(run_gins_pre_integ
${PROJECT_NAME}.ch3
${PROJECT_NAME}.ch4
${G2O_LIBS}
问题3.No rule to make target 'gmock',needed by '../bin/test_nn' . stop
CMakeFiles/Makefile2:4227:src/ch5/CMakeFiles/test_nn.dir/all]
修改/ch5/CMakeList.txt 内容为:
find_package(GTest REQUIRED)
add_executable(point_cloud_load_and_vis point_cloud_load_and_vis.cc)
target_link_libraries(point_cloud_load_and_vis
${PCL_LIBRARIES}
${GLOG_LIBRARIES}
gflags
)
add_executable(pcd_to_bird_eye pcd_to_bird_eye.cc)
target_link_libraries(pcd_to_bird_eye
${PCL_LIBRARIES}
${GLOG_LIBRARIES}
${OpenCV_LIBS}
gflags
)
add_executable(scan_to_range_image scan_to_range_image.cc)
target_link_libraries(scan_to_range_image
${PCL_LIBRARIES}
${GLOG_LIBRARIES}
${OpenCV_LIBS}
gflags
)
add_library(${PROJECT_NAME}.ch5
octo_tree.cc
)
target_link_libraries(${PROJECT_NAME}.ch5
tbb
)
add_executable(linear_fitting linear_fitting.cc)
target_link_libraries(linear_fitting
${PCL_LIBRARIES}
${GLOG_LIBRARIES}
${OpenCV_LIBS}
gflags
)
add_executable(test_nn test_nn.cc)
add_test(NAME test_nn COMMAND test_nn)
target_link_libraries(test_nn
GTest::GTest
GTest::Main
glog
gflags
${PROJECT_NAME}.ch5
${PROJECT_NAME}.common
${PCL_LIBRARIES}
tbb
参考博文: