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
可执行文件,运行则可得到:
按下任意键来关闭此窗口。
使用 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 [文件名]
来查找提供该文件的软件包并安装之。