本文將簡單介紹在 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 [檔名]
來查詢提供該檔案的軟體包並安裝之。