ArchLinux配置OpenCV C++环境

本文将简单介绍在 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 [文件名]

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

posted @ 2024-08-20 09:32  Eslzzyl  阅读(65)  评论(0编辑  收藏  举报