编译3D-RRT算法时,手动链接ompl的库文件,但是仍报错。
CMakeFiles/3d_rrt.dir/src/3d_rrt.cc.o:在函数‘planner::planner()’中:
3d_rrt.cc:(.text._ZN7plannerC2Ev[_ZN7plannerC5Ev]+0x497):对‘ompl::base::SpaceInformation::SpaceInformation(std::shared_ptr<ompl::base::StateSpace> const&)’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/3d_rrt.dir/build.make:215: recipe for target '../3d_rrt' failed
make[2]: *** [../3d_rrt] Error 1
CMakeFiles/Makefile2:1455: recipe for target 'CMakeFiles/3d_rrt.dir/all' failed
make[1]: *** [CMakeFiles/3d_rrt.dir/all] Error 2
解决方案:
安装ompl时会产生多个include文件夹,需要制定.so对应的头文件目录:
${OMPL_INCLUDE_DIRS}/ompl-1.7
include_directories( ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/../../ ${PROJECT_SOURCE_DIR}/../../include ${Pangolin_INCLUDE_DIRS} ${FCL_INCLUDE_DIRS} ${OCTOMAP_INCLUDE_DIRS} ${OMPL_INCLUDE_DIRS}/ompl-1.7 )