Ubuntu在CMakeLists.txt中指定OpenCV版本的参考方法

文章目录

写在前面

自己的测试环境:

  Ubuntu20.04, ROS-Noetic, OpenCV-4.2.0, OpenCV-4.5.4。

一、问题描述

编译运行OpenCV遇到如下报错:

bash 复制代码
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.5.4) /home/wong/third_party/opencv-4.5.4/modules/core/src/matrix.cpp:250: error: (-215:Assertion failed) s >= 0 in function 'setSize'

二、解决方法

出现上述报错的原因是 OpenCV 库版本不兼容的问题,因此需要在CMakeLists.txt中指定 OpenCV 4.2.0 的路径:

bash 复制代码
set(OpenCV_DIR /usr/lib/x86_64-linux-gnu/cmake/opencv4/)
find_package(OpenCV REQUIRED)
message("OpenCV_DIR: ${OpenCV_DIR}")
message("OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
message("OpenCV version: ${OpenCV_VERSION}")
# 打印结果
# OpenCV_DIR: /usr/lib/x86_64-linux-gnu/cmake/opencv4/
# OpenCV_INCLUDE_DIRS: /usr/include/opencv4
# OpenCV version: 4.2.0

然后重新编译,重新运行即可。

参考链接

1 wonghome. OpenCV报错遇到 No rule to make target '/usr/lib/x86_64-linux-gnu/libopencv_dpm.s' 的参考解决方法 EB/OL. https://blog.csdn.net/qq_39779233/article/details/142202706, 2024-09-13/2024-09-13.

相关推荐
咸鱼翻身小阿橙1 小时前
在VScode使用C#并且调用opencv库
vscode·opencv·c#
行智科技4 小时前
ORB-SLAM3代码详解 - 第 01 篇 · 系统总览与三线程架构
linux·ubuntu·架构·自动驾驶
街灯L4 小时前
【Ubuntu】使用ffmpeg解析m3u8网页视频
ubuntu·ffmpeg·音视频
嵌入式学习和实践8 小时前
Ubuntu 系统 socat 详细介绍与使用教程 - 映射任意两种数据通道
linux·ubuntu·虚拟串口·数据映射·socat
YYRAN_ZZU10 小时前
Ubuntu22.04搭建QEMU嵌入式开发环境全攻略
linux·嵌入式硬件·ubuntu
secret_to_me11 小时前
buildRoot编译rootfs实战
linux·c语言·c++·ubuntu·电脑·buildroot
很楠爱上11 小时前
TypeScript 核心知识精要
javascript·ubuntu·typescript
dust_and_stars11 小时前
在Ubuntu 24.04上设置Jupyter Notebook远程访问
linux·ubuntu·jupyter
x_lrong12 小时前
Ubuntu下安装配置Claude Code
linux·ubuntu·elasticsearch
济61712 小时前
ROS2 Humble 开发专栏---ROS2 三维视觉应用(1)---RGB-D 相机三维点云数据获取实验---适配Ubuntu 22.04
ubuntu·嵌入式·ros2·机器人开发·机器人方向