在XTDrone平台中,对ego_planner编译(catkin build)时出现错误:
Errors << ego_planner:make /home/nanorobot/catkin_ws/logs/ego_planner/build.make.019.log
/usr/bin/ld: CMakeFiles/ego_planner_node.dir/src/planner_manager.cpp.o: undefined reference to symbol '_ZN2cv3MatC1Ev'
//usr/local/lib/libopencv_core.so.3.4: 无法添加符号: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [/home/nanorobot/catkin_ws/devel/.private/ego_planner/lib/ego_planner/ego_planner_node] Error 1
make[1]: *** [CMakeFiles/ego_planner_node.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
make: *** [all] Error 2
对应CMakeLists文件内容为:
cmake_minimum_required(VERSION 2.8.3)
project(plan_env)
set(CMAKE_BUILD_TYPE "Release")
ADD_COMPILE_OPTIONS(-std=c++11 )
ADD_COMPILE_OPTIONS(-std=c++14 )
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g")
find_package(OpenCV REQUIRED)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
visualization_msgs
cv_bridge
message_filters
)
find_package(Eigen3 REQUIRED)
find_package(PCL 1.7 REQUIRED)
catkin_package(
INCLUDE_DIRS include
LIBRARIES plan_env
CATKIN_DEPENDS roscpp std_msgs
# DEPENDS system_lib
)
include_directories(
SYSTEM
include
${catkin_INCLUDE_DIRS}
${Eigen3_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
link_directories(${PCL_LIBRARY_DIRS})
add_library( plan_env
src/grid_map.cpp
src/raycast.cpp
src/obj_predictor.cpp
)
target_link_libraries( plan_env
${catkin_LIBRARIES}
${PCL_LIBRARIES}
${OpenCV_LIBS} ####自加
)
add_executable(obj_generator
src/obj_generator.cpp
)
target_link_libraries(obj_generator
${catkin_LIBRARIES}
)
make VERBOSE=1看看编译的参数,所需要的依赖库是否都连接上了