Colcon找不到合适的opencv版本



这是在运行ROS2 Dashing的Ubuntu 18.04上。我从源代码构建了OpenCV,并做了ldconfig的事情。但是colcon一直在尝试使用不同的版本。

错误为"缺少:opencv_cudaarithm opencv_cudafilters":

整个错误消息:

robotos@jetson-agx:~/ros2_ws$ colcon build
Starting >>> opencv_demos
--- stderr: opencv_demos                         
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find OpenCV (missing: opencv_cudaarithm opencv_cudafilters)
(found suitable version "4.1.1", minimum required is "4")
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/lib/aarch64-linux-gnu/cmake/opencv4/OpenCVConfig.cmake:328 (find_package_handle_standard_args)
CMakeLists.txt:29 (find_package)

然而,他们在那里:

robotos@jetson-agx:~/ros2_ws$ ls /usr/local/lib
a.out                              libopencv_highgui.so.4.2.0
cmake                              libopencv_imgcodecs.so
...
...
libopencv_core.so                  libopencv_optflow.so
libopencv_core.so.4.2              libopencv_optflow.so.4.2
libopencv_core.so.4.2.0            libopencv_optflow.so.4.2.0
libopencv_cudaarithm.so            libopencv_phase_unwrapping.so
libopencv_cudaarithm.so.4.2        libopencv_phase_unwrapping.so.4.2
libopencv_cudaarithm.so.4.2.0      libopencv_phase_unwrapping.so.4.2.0
...
...
libopencv_cudafilters.so           libopencv_quality.so
libopencv_cudafilters.so.4.2       libopencv_quality.so.4.2
libopencv_cudafilters.so.4.2.0     libopencv_quality.so.4.2.0

4.1.1 是我通过 apt 安装的版本,4.2 是从源代码构建的。

有趣的是,如果我只运行 cmake 而不是 colcon,那会运行到完成,所以我想只有 CMake 才能找到它。虽然我不确定如何处理生成的文件,所以我想让 colcon 工作。

另一台机器(也是 18.04 与 Dashing 一起(找到 cudaarithm 和 cudafilters 模块没有问题。

由于齐瓦列夫而修复。以下是他们的建议,转化为基于colcon的观点:

在项目的 CMakeList.txt 文件中,添加以下内容

set(OpenCV_DIR /usr/local/lib/cmake/opencv)

理想情况下,在"find_package(OpenCV..."行。

这迫使 colcon 使用正确的 OpenCV 安装,而不是它之前寻找的任何位置。不清楚为什么有些系统可以弄清楚,而另一些系统需要明确告知。

最新更新