(亲测可行)ubuntu下载安装c++版opencv4.7.0和4.5.0 安装opencv4.5.0报错及解决方法

news2024/10/13 1:52:08

文章目录

  • 🌕系统配置
  • 🌕打开终端,退出anacoda激活环境(如果有的话)
  • 🌕安装依赖
    • 🌙安装g++, cmake, make, wget, unzip,若已安装,此步跳过
    • 🌙安装opencv依赖的库
    • 🌙安装可选依赖
  • 🌕下载安装OpenCV 4.7.0版本
    • 🌙github下载方式
    • 🌙官网下载方式
    • 🌙移动下载的opencv包到要安装的位置
    • 🌙解压并安装
  • 🌕配置pkg-config环境
  • 🌕配置动态库环境
  • 🌕测试OpenCV
  • 🌕其它:解决安装OpenCV 4.5.0碰见的问题和解决方法
  • 🌕其它:安装失败重新编译的方法:
  • 🌕参考链接

🌕系统配置

文心一言说:

opencv4.5.0和opencv4.7.0至少为支持C++11或更高版本的编译器
C++版OpenCV 4.5.0通常支持GCC 5.4及以上版本和G++ 5.4及以上版本的编译器
C++版OpenCV 4.7.0通常支持GCC 7及以上版本和G++ 7及以上版本的编译器

我的配置

ubuntu 22.04
gcc和g++都是12.3.0

🌕打开终端,退出anacoda激活环境(如果有的话)

如果是在conda激活环境中,要首先退出激活环境。如果没有安装anaconda,忽略此步骤。

在这里插入图片描述

conda deactivate

🌕安装依赖

🌙安装g++, cmake, make, wget, unzip,若已安装,此步跳过

sudo apt install -y g++
sudo apt install -y cmake
sudo apt install -y make
sudo apt install -y wget unzip

🌙安装opencv依赖的库

sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

🌙安装可选依赖

# streamer支持
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
# 可选的依赖
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
                        

🌕下载安装OpenCV 4.7.0版本

🌙github下载方式

# 安装4.7.0版本
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.7.0.zip

下载最新版本的方法

# 安装最新版本
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip

🌙官网下载方式

https://opencv.org/releases/

点击source

在这里插入图片描述

🌙移动下载的opencv包到要安装的位置

mv /home/Downloads /home/bruce/software

🌙解压并安装

cd /home/bruce/software
unzip opencv.zip

进入解压后的包

cd opencv-4.5.0/
mkdir build
cd build/

使用cmake配置opencv

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..

说明:
-D OPENCV_GENERATE_PKGCONFIG=YES
OpenCV4以上默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能

# 查看线程数
nproc

我的是24,所以编译的进程数就填24,开始编译

make -j24

在这里插入图片描述
用make进行安装

sudo make install

默认安装路径为:

/usr/local/bin - executable files
/usr/local/lib - libraries (.so)
/usr/local/cmake/opencv4 - cmake package
/usr/local/include/opencv4 - headers
/usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)

🌕配置pkg-config环境

opencv4.pc文件的默认路径:/usr/local/lib/pkgconfig/opencv4.pc
若此目录下没有,可以使用以下命令搜索:

sudo find / -iname opencv4.pc
sudo vim /etc/profile.d/pkgconfig.sh

按i进入插入模式,然后添加如下内容:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

在这里插入图片描述按esc,输入:wq 保存后退出。

激活

source /etc/profile

验证是否成功:

pkg-config --libs opencv4

在这里插入图片描述

🌕配置动态库环境

打开文件(可能为空文件):

sudo vim /etc/ld.so.conf.d/opencv4.conf

在该文件末尾加上OpenCV的lib路径,保存退出:

/usr/local/lib

使配置的路径生效:

sudo ldconfig

🌕测试OpenCV

cd 到/opencv/samples/cpp/example_cmake目录下,依次执行以下命令:

进入你的opencv解压目录,然后进入如下的目录
在这里插入图片描述

cmake .
make
./opencv_example

运行之后如果电脑有摄像头,就会弹出摄像头

如果没有摄像头弹出如下内容也是对的:

在这里插入图片描述

🌕其它:解决安装OpenCV 4.5.0碰见的问题和解决方法

在这里插入图片描述
在这里插入图片描述报错显示gapi_async_test.cpp这里面的代码找不到

这个错误信息指出在编译 OpenCV 4.5.0 的 gapi_async_test.cpp 文件时遇到了一个问题,具体是 std::this_thread::sleep_for 函数无法识别。这通常是因为缺少必要的头文件或者编译器标准设置不正确导致的。

std::this_thread::sleep_for 是 C++11 标准中引入的一个功能,它位于 头文件中。错误提示表明编译器没有找到这个函数,很可能是因为没有包含 头文件。

在这里插入图片描述点击保存。

make clean  # 可选,但推荐,以清除旧的构建文件 
# 查看线程数
nproc

我的是24,所以编译的进程数就填24

make -j24

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/242f5e0c1af1449084c75ea7b476979f.png

🌕其它:安装失败重新编译的方法:

删除build文件夹下的文件CMakeCache.txt,重新编译即可

rm CMakeCache.txt

清除旧的构建文件

make clean  

🌕参考链接

Ubuntu 20.04搭建OpenCV 4.5.0 & C++环境

Ubuntu 安装 OpenCV 4.5.5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2209304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Smartfusion2开发环境的搭建

Libero软件安装包括libero安装、bibero补丁安装、bibero的license添加和官方ip库的添加等4部分内容组成。具体内容如下所示: 1 Libero软件安装 1、解压LiberoSoC_v11.8的安装包到当前目录,然后运行Libero中的可执行软件进行安装; 图1 双击l…

Javascript实现Punycode编码/解码

Punycode编码/解码的Javascript实现。 用法 const punycode require(punycode); console.log(punycode.encode(用法)); //nwwn1p console.log(punycode.decode(nwwn1p)) //用法console.log(punycode.toIDN(用法.中国)); //xn--nwwn1p.xn--fiqs8s console.log(punycode.fromI…

【AAOS】Android Automotive 13模拟器源码下载及编译

源码下载 repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r69 repo sync -c --no-tags --no-clone-bundle 源码编译 source build/envsetup.sh lunch sdk_car_x86_64-userdebug make -j8 运行效果 emualtor HomeMapAll appsSettings…

CUDA-X

NVIDIA CUDA-X 文章目录 前言一、CUDA-X 微服务CUDA-X 微服务CUDA-X 库二、CUDA-X 数据处理三、CUDA-X AI四、CUDA-X HPC总结前言 适用于 AI 的采用 GPU 加速的微服务和库。 释放 GPU 在 AI 应用程序中的潜能 探索 NVIDIA CUDA-X AI 正在推动变革的 AI 领域和可在其中使用的 G…

win10 解决Qt编译得到的可执行文件 *.exe 无法启动的问题

问题描述 在Qt 5.12.4 写了一个服务端程序,编译可以通过,但是打开debug目录下的可执行文件,就报以下错误: 解决方案 方法一 复制缺失的dll到TCPServer.exe目录下 方法二 可能是系统环境变量没有配好 将你电脑上的Qt安装目录…

linux入门——“权限”

linux中有权限的概念,最常见的就是安装一些命令的时候需要输入sudo来提权,那么为什么要有这个东西呢? linux是一个多用户操作系统,很多东西看起来是有很多分,但是实际的存储只有一份(比如命令,不…

网站在对抗机器人攻击的斗争中失败了

95% 的高级机器人攻击都未被发现,这一发现表明当前的检测和缓解策略存在缺陷。 这表明,虽然一些组织可能拥有基本的防御能力,但他们没有足够的能力应对更复杂的攻击。 例如利用人工智能和机器学习来模仿人类行为的攻击。 这些统计数据强调…

数据结构之顺序表详解:从原理到C语言实现

引言 在上一篇文章中我们讲到了时间复杂度与空间复杂度,今天我们接着讲数据结构中的内容。 数据的存储和组织方式决定了程序的效率。而顺序表,也就是大家熟悉的数组,正是我们编程中的“起步工具”。它简单易懂,却能帮你解决许多…

python利用电脑默认打开方式打开文件,视频,图片

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理python利用os库打开本地文件的方法。 这个确实比较简单。 利用os库的 os.startfile("mp4") 函数即可用系统默认打开方式打开文件。 这里打开视频进行测试。 import os os.startfile("…

linux 虚拟环境下源码安装DeepSpeed

第一步:创建虚拟环境: conda create -n deepspeed python3.10 第二步:进入虚拟环境,安装Pytorch 2.3.1 # CUDA 12.1 conda install pytorch2.3.1 torchvision0.18.1 torchaudio2.3.1 pytorch-cuda12.1 -c pytorch -c nvidia 第…

谷粒商城(学习笔记)

配置刷新的注解 数据表中不存在的数据 gateway路径重写 CORS跨域 调整路由顺序: TODO是什么:备忘录 逻辑删除 axios有请求缓存: 请求的模版! 删除成功后,重新获取数据! 删除成功之后,还有提示消息 删除成功…

八大排序--08快速排序

现有 arr {4,8,9,2,7}数组,请用快速排序的方式实现从小到大排序: 方法: 1.定义待排序数组中的第一个值为基准数; 2.定义j游标,从后向前移动找到第一个比基准数小的值停下; 3.定义i游标,从后向…

自定义注解和组件扫描在Spring Boot中动态注册Bean(一)

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 在Spring Boot中,自定义注解和组件扫描是两种强大的机制,它们允许开发者以声明性的方式动态注册Bean。这种方式不仅提高了代码的可读性和可维护性,还使得Spring Boot应用的…

区域识别——基于python语言

目录 目录 1.水域识别 2.模型介绍 3.文件框架 4.代码示例 4.1 data_preprocess.py 4.2 model1.0.py 4.3 train2.0.py 4.4 predict.py 4.5 运行结果 5.总结 1.水域识别 人眼看见河道可以直接分辨出这是河道,但是如何让计算机也能识别出这是河道呢&#x…

无序中的秩序:Transformer模型的创新性结构解析

最近我在看论文时,发现很多都在用 Transformer 模型,我知道transformer很有名,但是我也只是听说过他的大名,不知道他具体是做什么怎么做的,因此我决定深入了解一下,并做个简单记录,方便以后参考…

TDC上YARN Web-UI 查看application日志方法

方法一 #通过浏览器访问tdc,访问的工作节点对于TDC都是外部节点。在提交给yarn任务后,YarnRM的Web UI 可以展示yarnnm上运行的application日志,但是由于跳转的svc地址,无法直接访问。 #在tdc界面上找到yarn实例,进入ya…

【Scala入门学习】集合常用方法和函数操作

1. foreach循环遍历 foreach 方法的原型: // f 返回的类型是Unit, foreach 返回的类型是Unit def foreach[U](f: Elem > U) 该方法接受一个函数 f 作为参数, 函数 f 的类型为Elem > U,即 f 接受一个参数,参数…

达梦数据库(DM)单机典型安装

达梦数据库(DM)单机典型安装 环境:centos7.6 1、创建用户 #增加用户和组,用于安装管理达梦数据库。 新建用户组:groupadd dinstall 新建用户:指定用户组,家目录,shell。useradd -g…

反转链表解题思路

题目描述 给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。 示例:当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。 解题思路:迭…

股市大涨下的会展业创新者

近期,股市涨势强劲有力,各大指数普遍上扬,市场活力空前。与此同时,伴随全球经济逐步复苏及会展行业不断发展,上市展览公司机遇与挑战并存。国内外市场需求持续增长拓展了广阔发展空间,但同时行业竞争愈发激…