首页 > 系统相关 >ArchLinux配置OpenCV C++环境

ArchLinux配置OpenCV C++环境

时间:2024-08-20 09:39:28浏览次数:13  
标签:opencv C++ OpenCV ArchLinux PKG opencv4 main CONFIG

本文将简单介绍在 ArchLinux 中安装 OpenCV C++ 库并运行一个简单的 OpenCV 程序的过程。

参考:https://github.com/donaldssh/Install-OpenCV

我的环境

  • 最新的 ArchLinux
  • KDE Plasma 6 桌面环境
  • OpenCV 4.10.0
  • clang 18.1.8
  • gcc 14.2.1

安装

安装以下包:

sudo pacman -S hdf5 vtk glew base-devel pkg-config opencv opencv-samples

安装以下 AUR 包:

paru -S gtkglext

检查 OpenCV 的版本,从而确保它被正确安装了:

pkg-config --modversion opencv4

这会给出 OpenCV 的版本。在我撰写本文时是 4.10.0。

然后将 /usr/lib/pkgconfig 追加到 PKG_CONFIG_PATH 环境变量的末尾。对于 bash 来说,应当添加以下行:

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

对于 fish 来说,应当添加以下行:

set -x PKG_CONFIG_PATH $PKG_CONFIG_PATH /usr/lib/pkgconfig

/etc/ld.so.conf.d/ 目录中新建一个 opencv4.conf 文件,在其中写入以下行:

/usr/include/opencv4

然后执行

sudo ldconfig -v

来生成链接。

编写测试代码

新建一个 main.cpp,填入以下代码:

#include <opencv2/opencv.hpp>
using namespace cv;

int main() {
    const auto img = imread("/usr/share/opencv4/samples/data/lena.jpg");
    imshow("lena", img);
    waitKey(0);
    return 0;
}

使用 Makefile

main.cpp 同级目录下新建一个 Makefile 文件,填入以下内容:

CFLAGS = `pkg-config --cflags opencv4`
LIBS = `pkg-config --libs opencv4`

% : %.cpp
	g++ $(CFLAGS) $(LIBS) -o $@ $<

然后执行

make main

将在当前目录下生成一个 main 可执行文件,运行则可得到:

img

按下任意键来关闭此窗口。

使用 CMake

main.cpp 同级目录下新建一个 CMakeLists.txt 文件,填入以下内容:

cmake_minimum_required(VERSION 3.29)
project(OpenCVTest)

set(CMAKE_CXX_STANDARD 20)
# find required opencv
find_package(OpenCV REQUIRED)
# directory of opencv headers
include_directories(${OpenCV_INCLUDE_DIRS})
# name of executable file and path of source file

add_executable(OpenCVTest main.cpp)
# directory of opencv library
link_directories(${OpenCV_LIBRARY_DIRS})
# opencv libraries
target_link_libraries(OpenCVTest ${OpenCV_LIBS})

然后执行

cmake .

完毕后执行

cmake --build .

将在当前目录生成一个 OpenCVTest 可执行文件。运行之,得到与上节相同的效果。

提示

如果在编译过程中提示某个库文件缺失,可以尝试使用

pacman -F [文件名]

来查找提供该文件的软件包并安装之。

标签:opencv,C++,OpenCV,ArchLinux,PKG,opencv4,main,CONFIG
From: https://www.cnblogs.com/eslzzyl/p/18368765

相关文章

  • python opencv实时视频输入
    要在Python中使用OpenCV进行实时视频输入,可以按照以下步骤进行操作:首先,需要安装OpenCV库。可以使用pipinstallopencv-python命令来安装OpenCV。导入所需的库:importcv2创建一个VideoCapture对象来读取视频输入:cap=cv2.VideoCapture(0)这里的参数0表示使用计......
  • 【C++】类与对象篇一
    【C++】类与对象篇一一.面向过程和面向对象初步认识二.类的详解1.类的引入2.类的定义3.类的访问限定符及封装(面试题)4.类的作用域5.类的实例化6.类对象模型三.结构体内存对齐规则(面试题)四.this指针1.this指针的特性2.this指针的(面试题)一.面向过程和面向对象......
  • 3142:练23.4 首字母(C、C++、python)
    3142:练23.4 首字母信息学奥赛一本通-编程启蒙(C++版)在线评测系统C源码:#include<stdio.h>#include<stdlib.h>intmain(){ charb; scanf("%c",&b); if(b=='a'){ printf("apple"); } elseif(b=='b'){ printf("ba......
  • C++运算符重载
    文章目录一、运算符重载1、规定2、operator关键词的使用二、赋值运算符的重载1、功能2、使用一、运算符重载1、规定C++允许我们对类类型使用运算符,但要我们自己通过运算符重载完成类类型的运算,如果没有对应的运算符重载就会报错。运算符重载需要使用特殊关键词......
  • 【C++】看完就会--右值引用!!!
    右值引用一、什么是右值?什么是左值?二、右值引用三、右值引用的好处四、万能引用五、完美转发一、什么是右值?什么是左值?首先,当我们看到右值的时候,我们很自然的就会产生疑问?什么的右边呢?等号的右边吗?那么如果是按赋值=符号的右边来定义的话,那么,左值是不是就是=符号......
  • 【LGR-196-Div.4】洛谷入门赛 #26 题A - H 详细题解--优化思路简洁代码(C++,Python语
    前言:    觉得这个比赛很有意思的,都是暴力题,涉及一些细节,难度比较适合刚学编程语言的,可以很好的锻炼基础还有手速,最后两题也是比较有意思,之后也准备更新atc的比赛题解和洛谷的一些高质量比赛题解(算法网瘾就是想参加各种比赛)   如果觉得有帮助,或者觉得我写的好,......
  • 生产者消费者问题-C++代码实现
    生产者消费者问题C++代码本文主要记录面试中手撕代码环节比较经常考察的生产者消费者问题,方便后续巩固和查看#include<iostream>#include<thread>#include<mutex>#include<condition_variable>#include<queue>#include<functional>usingnamespacestd;classProd......
  • 配置 昇腾 Ascend C/C++ 开发环境
    配置昇腾AscendC/C++开发环境flyfish这里以OrangePiAiPro为例先说如何配置MindStudio,然后再说如何查看OrangePiAiPro的一些信息OrangePiAIPro开发板是香橙派联合华为精心打造的高性能AI开发板,其搭载了昇腾AI处理器。Linux桌面系统的默认登录用户为H......
  • C++ 获取Linux 服务器CPU占用率+内存空闲率(亲测绝对可以运行)
    转自:C++获取Linux服务器CPU占用率+内存空闲率(亲测绝对可以运行)-远征i-博客园(cnblogs.com)代码来自网络,部分修改,亲测绝对可用C++:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<unistd.h>usingnamespacestd;type......
  • 牛客网习题——通过C++实现
    一、目标实现下面4道练习题增强C++代码能力。1.求1+2+3+...+n_牛客题霸_牛客网(nowcoder.com)2.计算日期到天数转换_牛客题霸_牛客网(nowcoder.com)3.日期差值_牛客题霸_牛客网(nowcoder.com)4.打印日期_牛客题霸_牛客网(nowcoder.com)二、对目标的实现 1.求1+2+3+......