ROS 水电 opencv2 在'catkin_make'期间链接错误

ROS hydro opencv2 linking error during 'catkin_make'

本文关键字:链接 错误 make opencv2 水电 ROS catkin      更新时间:2023-10-16

我的ROS hydro发行版没有什么问题。我需要在一个项目中使用它,所以不能更改为Indiko。

问题是我使用了catkin_create_pkg packname opencv2 ...来创建我的项目包。但当我尝试调用catkin_make时,我会出现以下错误:

CMake错误在/opt/ros/hydro/share/catkin/CMake/catkinConfig.CMake:75(find_package):找不到提供的包配置文件通过以下任何名称的"opencv2":

opencv2Config.cmake
opencv2-config.cmake

将安装前缀"opencv2"添加到CMAKE_prefix_PATH或设置"opencv2_DIR"到包含上述文件之一的目录。如果
"opencv2"提供了一个单独的开发包或SDK,请确保已安装。

我知道opencv2已经安装,因为我可以在rospack find opencv2中找到它,并且我可以在其他与ROS无关的项目中使用它。

我在CMakeLists.txt和package.xml 中有以下几行

CMakeLists.txt:

find_package(catkin REQUIRED COMPONENTS opencv2)

include_directories(${catkin_INCLUDE_DIRS}
${opencv2_INCLUDE_DIRS})

target_link_libraries(BasicObstDetect_node
${catkin_LIBRARIES}
${opencv2_LIBRARIES})

package.xml:

<build_depend>opencv2</build_depend>

<run_depend>opencv2</run_depend>

我曾尝试使用OpenCV而不是opencv2,但这没有任何区别。有什么建议吗?

我不确定,但这可能有效:编辑CMakeLists以添加

find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})

以及target_link_libraries(follower ${OpenCV_LIBRARIES})