ArchLinux配置OpenCV C++環境

Eslzzyl發表於2024-08-20

本文將簡單介紹在 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 [檔名]

來查詢提供該檔案的軟體包並安裝之。

相關文章