在安装了ros的系统中会存在一个版本的opencv,如果此时自己安装了其他的版本则可能会有冲突:
undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
warning: libopencv_core.so.4.4, needed by xxxxxxx, may conflict with libopencv_core.so.3.2
解决办法:
CMakeLists中指定和ROS一致的opencv版本
# Ubuntu 18.04 + Melodic
find_package(OpenCV 3 REQUIRED)
# Ubuntu 20.04 + Noetic
find_package(OpenCV 4 REQUIRED)
更直接的方法
指定opencv查找目录:
set(OpenCV_DIR "/usr/lib/aarch64-linux-gnu/cmake/opencv4")
find_package(OpenCV REQUIRED)
MESSAGE(STATUS "OpenCV Version : " ${OpenCV_VERSION})
一定要指定到OpenCVConfig.cmake配置所在的目录,一般在cmake
目录下