Package opencv was not found in the pkg-config search path.

2023-10-27

安装好后opencv后执行下面这条语句的时候出错:

pkg-config --cflags opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

经过网上详细查询资料后,是缺失了opencv.pc这个配置信息文件,故解决方法就是添加这个文件然后将其导入到环境变量中,具体操作如下:

首先创建opencv.pc文件,这里要注意它的路径信息:

cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc

然后在opencv.pc中添加以下信息,注意这些信息需要与自己安装opencv时的库路径对应:

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: opencv
Description: The opencv library
Version:4.0.1
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core
~                                               

保存退出,然后将文件导入到环境变量:

export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

至此就配置好opencv.pc啦~
再执行 pkg-config --cflags --libs opencv时输出结果如下:

-I/usr/local/include/opencv4 -L/usr/local/lib \
-lopencv_shape -lopencv_stitching -lopencv_objdetect \
-lopencv_superres -lopencv_videostab -lopencv_calib3d \
 -lopencv_features2d -lopencv_highgui -lopencv_videoio \
 -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml \
 -lopencv_imgproc -lopencv_flann -lopencv_core

下面是opencv官方例程(opencv-4.0.1/samples/cpp/example_cmake)里的代码文件和Makefile文件:
example.cpp:

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>

using namespace cv;
using namespace std;

void drawText(Mat & image);

int main()
{
    cout << "Built with OpenCV " << CV_VERSION << endl;
    Mat image;
    VideoCapture capture;
    capture.open(0);
    if(capture.isOpened())
    {
        cout << "Capture is opened" << endl;
        for(;;)
        {
            capture >> image;
            if(image.empty())
                break;
            drawText(image);
            imshow("Sample", image);
            if(waitKey(10) >= 0)
                break;
        }
    }
    else
    {
        cout << "No capture" << endl;
        image = Mat::zeros(480, 640, CV_8UC1);
        drawText(image);
        imshow("Sample", image);
        waitKey(0);
    }
    return 0;
}

void drawText(Mat & image)
{
    putText(image, "Hello OpenCV",
            Point(20, 50),
            FONT_HERSHEY_COMPLEX, 1, // font face and scale
            Scalar(255, 255, 255), // white
            1, LINE_AA); // line thickness and type
}

Makefile:

CXX ?= g++

CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv)
LDFLAGS += $(shell pkg-config --libs --static opencv)

all: opencv_example

opencv_example: example.o; $(CXX) $< -o $@ $(LDFLAGS)

%.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS)

clean: ; rm -f example.o opencv_example

我们在该例程下执行make来测试,编译过程如下:

g++ example.cpp -o example.o -c -Wall -I/usr/local/include/opencv4
g++ example.o -o opencv_example -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core

编译过程没有问题且生成了可执行文件opencv_example,执行起来没有问题,但是报了一点点小错误:

Gtk-Message: 06:57:54.502: Failed to load module "canberra-gtk-module"

这不是程序代码有问题,也不是编译问题,只需要安装一下 libcanberra-gtk-module即可:

sudo apt-get install libcanberra-gtk-module

最终运行结果如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Package opencv was not found in the pkg-config search path. 的相关文章

  • Python中如何将浮点型数据转换成整型

    在 Python 中 可以使用内置函数 int 将浮点型数据转换为整型 例如 a 3 14 b int a print b 输出结果为 3 注意 转换为整型时 会将浮点数四舍五入到最接近的整数
  • Android 创建淡入淡出动画的详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 介绍 淡入淡出动画 也称为 叠化 逐渐淡出一个 View 或 ViewGroup 同时淡入另一个 此动画适用于您希望在应用中切换内容或视
  • 华为机考 创建二叉树 javascript

    请按下列描达构建一颗二叉树 并返回该树的根节点 1 先创建值为 1的根结点 根节点在第0层 2 然后根据operations依次添加节点 operations i height index 表示对第 height 层的第index 个节点n
  • 适合小白入门Spark的全面教程

    问题导读1 spark有哪些使用场景 2 spark有包含哪些组件 3 spark在哪些厂商已经应用 4 spark如何实现地震检测 Apache Spark是一个用于实时处理的开源集群计算框架 它是Apache软件基金会中最成功的项目 S
  • python学习3. 无重复字符的最长子串(滑动窗口)

    makcooo 2019 04 19 15 47 32 271 收藏 分类专栏 python 版权 给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 abcabcbb 输出 3 解释 因为无重复字符的最长子串是
  • impala对元数据的界面更新操作

    执行 impala shell 即能进入界面操作sql 如果在hive更新了数据之后 而在impala中却无法看到更新后的数据的话 意味着impala里元数据信息还没有刷新 此时在impala操作界面里 执行 invalidate meta
  • 随机数生成方法及其应用

    目录 一 前言 二 伪随机数发生器介绍 三 均匀随机数发生器 四 任意概率分布的随机数发生器 五 产生特定要求的随机数 六 参考资料 一 前言 最近公司的一个项目 需要对一个功能模块进行性能验证 具体什么模块就不说了 验证过程中需要生成大量
  • 2022 年 5 个新 sudo 功能

    导读 最近的 sudo 版本增加了新的功能 使你能够观察和控制以前隐藏的问题 当你想授予你的一些用户管理权限 同时控制和检查他们在你的系统上做什么时 你会使用 sudo 然而 即使是 sudo 也有相当多不可控的地方 想想给予 shell
  • G1收集器特质以及分代理论

    特征 被视为JDK1 7以上版本Java虚拟机的一个重要进化特征 它具备以下特点 并行与并发 G1能充分利用CPU 多核环境下的硬件优势 使用多个CPU CPU或者CPU核心 来缩短Stop The World停顿时间 部分其他收集器原本需
  • 3dsmax Node Event System

    Node Event System 3dsmax 节点事件系统 https help autodesk com view MAXDEV 2022 ENU guid GUID 7C91D285 5683 4606 9F7C B8D3A7CA5
  • Linux网络——PXE高效批量网络装机

    Linux网络 PXE高效批量网络装机 一 PXE远程安装服务 1 PXE批量部署的优点 2 搭建PXE网络体系的安装条件 二 PXE 安装进行前的配置 1 PXE装机所需的文件 2 搭建 PXE 过程中使用的服务和程序 DHCP服务 vs
  • Linux上安装JDK、mysql、tomcat,以及将springboot项目部署到Linux上

    安装jdk 1下载jdk并放入linux系统 2解压 mkdir usr local java 创建文件夹 等下就将jdk解压到这里 tar zxvf jdk 8u181 linux x64 tar gz C usr local java
  • 最新模拟登录12306(破解12306验证码)

    最新模拟登录12306 破解12306验证码 重点 对12306验证码的破解 仅供学习交流 请勿 1 找到验证码的图片信息 2 点开headers查看 不难发现是经过base64加密的图片 但是没有请求的url 3 再查看分析发现 上面的一
  • 时序预测

    时序预测 Matlab实现CNN XGBoost卷积神经网络结合极限梯度提升树时间序列预测 目录 时序预测 Matlab实现CNN XGBoost卷积神经网络结合极限梯度提升树时间序列预测 效果一览 基本描述 程序设计 参考资料 效果一览
  • OL-CC:首个众包形式、人工生成的开源中文对话指令集

    数据是训练大模型必不可少的 燃料 但目前的数据集由不同的机构构建 存储分散 难以整合 高质量数据集的建设成本高昂 当前由于商业竞争等原因 导致数据上形成了各自为战的局面 大家无法将分散的数据整合到一起发挥更大的作用 2 月底 智源研究院发布
  • mycat2.0 分库分表报错 3002 - ERROR-CODE: [MYCAT-3002][ERR_FETCH_METADATA] MetadataManager init fail

    1 安装好mycat2 0之后 执行sql进行分库分表 DROP TABLE sys user CREATE TABLE sys user id bigint 0 NOT NULL AUTO INCREMENT COMMENT id use
  • 程序员在囧途之垃圾创业团队 .

    转载地址 https yq aliyun com articles 48175 utm campaign wenzhang utm medium article utm source QQ qun 2017316 utm content m
  • JMeter —— Jar包性能测试 完整流程教学

    本文只使用简单用例演示项目打包为Jar并上JMeter测试的整个过程 关于高级用法请看官方文档 官方文档链接 http jmeter apache org usermanual 一 下载JMeter 官网链接 https jmeter ap
  • Chisel Tutorial(五)——Bundles与Vecs

    以下内容依据2015 7 10版的Chisel 2 2 Tutorial整理 此处的Bundles Vecs就不翻译了 免得因为翻译不准引起一些误解 童鞋们有没有好的建议 lt

随机推荐

  • SpringBoot+Hutool工具类Excel工具-ExcelUtil实现excel文件的导入导出

    Hutool会用的话极大了简化了操作Excel的过程 提高开发效率 废话少说上代码 excel文件导出 public void downLoadFile UserDto dto HttpServletResponse response St
  • kvm虚拟化简介

    1 KVM介绍 KVM是一个基于Linux内核的虚拟机 它属于完全虚拟化范畴 从Linux 2 6 20开始被包含在Linux内核中 KVM基于x86硬件虚拟化技术 它的运行要求Intel VT x或AMD SVM的支持 一般认为 虚拟机监
  • synchronized原理分析

    Java 高并发专题之synchronized关键字 1 synchronized作为jvm关键字有三个作用域 synchronized作用于实例方法 锁住的当前对象 只有当前对象被锁住 新new出来的对象不会被锁住 synchronize
  • 基于python+MobileNetV2算法模型实现一个图像识别分类系统

    一 目录 算法模型介绍 模型使用训练 模型评估 项目扩展 二 算法模型介绍 图像识别是计算机视觉领域的重要研究方向 它在人脸识别 物体检测 图像分类等领域有着广泛的应用 随着移动设备的普及和计算资源的限制 设计高效的图像识别算法变得尤为重要
  • 代理IP与Socks5代理:跨界电商智能爬虫的引擎与安全壁垒

    一 代理IP 智能爬虫的引擎 多地区数据采集 代理IP允许企业模拟不同地区的IP地址 轻松实现多地区数据采集 这为企业洞察全球市场需求提供了重要数据支持 规避反爬虫机制 代理IP通过随机切换IP地址 规避了网站的反爬虫机制 确保数据采集的稳
  • 7.31黄金最新行情走势分析及多空交易策略

    近期有哪些消息面影响黄金走势 黄金多空该如何研判 黄金消息面解析 上周有重磅数据美联储加息的消息 黄金受其影响波动比较频繁 总体空间40美金 但这个过程跌宕起伏 收线来看黄金在连续上涨三周后迎来一根小阴十字星线 多头动能有所减弱 上周四加息
  • 【读书笔记】Java NIO (中文版) 读书笔记

    概述 这本书讲解的一般吧 主要是讲解了 缓冲区 通道 选择器 正则表达式 字符集 主要是讲解了api的使用 以及部分系统知识 比较底层了 而且大部分都是代码的源码讲解 或者api使用的讲解 太细致了 学netty之前可以看看这个 或者两者互
  • 协同过滤推荐算法

    一 协同过滤思想简介 二 协同过滤算法原理介绍 三 基于用户的协同过滤算法描述 四 基于物品的协同过滤算法 基于物品的协同过滤算法的优缺点 一 协同过滤思想简介 协同过滤 从字面上理解 包括协同和过滤两个操作 首先我们在外出和朋友吃饭的时候
  • 【操作系统】王道考研 p54-56 文件共享、文件保护、文件系统的层次结构

    文件共享 文件保护 文件系统的层次结构 知识总览 以下是文件共享的内容 基于索引结点的共享方式 硬链接 用一个count来记录在使用这个文件的用户的个数 当用户删除文件 则用户目录的该文件目录项删除 并count 1 当count 0 则系
  • 安装Oracle EE

    前期 进入自己需要设置的目录 创建文件夹 文件夹授权 mkdir xxx chmod o w oracle oradata chmod 777 oracle oradata 安装ORACLE EE 1 查找镜像 docker search
  • 【Java基础】File类 IO流

    个人简介 gt 个人主页 是Lay的主页 gt 学习方向 JAVA后端开发 gt 种一棵树最好的时间是十年前 其次是现在 gt 往期文章 Java基础 面向对象进阶 二 gt 喜欢的话麻烦点点关注喔 你们的支持是我的最大动力 目录 1 Fi
  • SeetaFaceEngine安装和测试

    一 介绍 必须安装好opencv SeetaFace人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块 即 人脸检测模块SeetaFace Detection 面部特征点定位模块SeetaFace Alignment以及人脸特征
  • FRR编译及配置(旧版)

    本文最新状态可点击查看https turbock79 cn p 334 CSDN可点击查看https blog csdn net turbock article details 107039031 爬坑 本文基于官方文档进行编译 发现构建文
  • (详解)Vue3自定义指令

    目录 一 背景 二 提前预习 必看 2 1自定义指令生命周期 2 2 生命周期四个参数 三 自定义指令 3 1私有自定义指令 3 1 1定义指令 3 1 2使用自定义指令 3 2全局自定义指令 3 2 1定义指令 3 2 2使用自定义指令
  • iconfont 使用规则

    使用iconfont可以替代普通的单色小图标 无法替代有层次 渐变或多色的图标 这些还是要用位图来做 风险 需要修改的资源较多 基本所有页面要重新过一遍 可能影响到后续版本输出的进度 工作量预估 按各自负责模块内容 学铭2人日 瑞华3人日
  • 巨神奇,2013年的老Mac,竟直接装上macOS Ventura 13.1 Beta版

    写在前面 上期这篇文章 终于 老Mac可以跨级安装macOS Ventura了 中 我说了通过OpenCore Legacy Patcher可以跨级安装macOS Ventura 但却没给出一个切实的解决方法 本期我就说一下跨级安装的方法
  • 解决YOLOV5训练时P、R、mAP等值均为0的问题

    最近用YOLOV5训练自己的数据集 出现了训练失败的情况 比如box obj cls labels等均为nan或0 找了很多办法 其实就是cuda与PyTorch版本的问题 Epoch gpu mem box obj cls labels
  • 1603A - Di-visible Confusion

    1603A Di visible Confusion 题目 一个长度为N的数组从a1 a2 an 如果在存在不能被整除则可以删除 剩下的数变为a1 a2 an 1 求是否能使得数组为空 题解 每个数都会因为前一个数被删除而前移 所以遍历所有
  • 微信小程序如何实现将数据导出生成excel

    码字不易 有帮助的同学希望能关注一下我的微信公众号 Code程序人生 感谢 代码自用自取 这个需求也是我在接私活的时候遇到的 需求就是 要实现将指定数据库表的数据全部导出生成excel和按需导出 也就是导出全部数据 或者导出指定哪天的数据
  • Package opencv was not found in the pkg-config search path.

    安装好后opencv后执行下面这条语句的时候出错 pkg config cflags opencv Package opencv was not found in the pkg config search path Perhaps you