必须通过源码编译安装适配OpenCV:一、确认系统环境并更新组件;二、安装编译工具链与依赖库;三、下载解压4.6.0源码;四、配置CMake参数启用NEON/VFPV3/QT;五、并行编译并安装;六、验证库、头文件及Python模块。

如果您在麒麟操作系统上需要进行图像处理开发,但发现系统自带的OpenCV版本过旧、功能缺失或根本不支持Arm64架构,则必须通过源码编译方式安装适配的OpenCV。以下是针对银河麒麟V10(含SP1)全系列、覆盖x86_64与aarch64双架构的实测安装步骤:
一、确认系统环境与更新基础组件
在开始编译前,必须精准识别系统身份并同步最新软件状态,避免因内核版本、架构标识或工具链陈旧导致后续CMake配置失败或编译中断。此步骤直接决定依赖解析是否准确、编译器能否启用NEON/ARMv8优化指令。
1、执行命令查看系统发行版与内核信息:
cat /etc/os-release && uname -r
2、确认CPU架构是否为aarch64(Arm64)或x86_64:
arch
3、更新APT软件源索引并升级全部已安装包:
sudo apt update && sudo apt upgrade -y
二、安装核心编译工具链与基础依赖
OpenCV是大型C++项目,其构建过程高度依赖标准化工具链与底层I/O库。缺失任意一项将导致CMake报错“Could NOT find XXX”或make阶段链接失败。本步骤涵盖GCC/G++、CMake、pkg-config及图像/视频处理必需的开发头文件与静态库。
1、安装build-essential(含gcc、g++、make)和cmake 3.16.3+:
sudo apt install -y build-essential cmake pkg-config
2、安装图像格式支持库(JPEG/TIFF/PNG/JASPER):
sudo apt install -y libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
3、安装视频编解码与采集支持库:
sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
4、安装GUI与数学加速库:
sudo apt install -y libgtk2.0-dev libatlas-base-dev gfortran
5、若需Python绑定,安装对应Python开发包:
sudo apt install -y python3-dev python3-numpy
三、下载并解压OpenCV源码(推荐4.6.0稳定版)
使用官方Release源码包可规避git submodule拉取不稳定、网络超时等问题,确保SHA256校验一致、CMakeLists.txt结构完整。4.6.0版本经麒麟V10 SP1实测兼容Qt 5.12.12,DNN模块可调用国产AI加速库。
1、创建专用工作目录:
mkdir -p ~/opencv_build && cd ~/opencv_build
2、下载OpenCV 4.6.0源码压缩包(使用国内镜像加速):
wget https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
3、解压并进入源码根目录:
tar -xzf 4.6.0.tar.gz && cd opencv-4.6.0
四、配置CMake编译参数(关键避坑环节)
CMake是OpenCV构建的总控枢纽,错误的选项会导致模块缺失、硬件加速未启用或Qt集成失败。针对麒麟系统特性,必须显式关闭不兼容项、启用Arm64原生优化,并指定Qt路径(如需GUI支持)。
1、创建独立构建目录以隔离源码:
mkdir -p build && cd build
2、执行CMake配置(Arm64平台示例,含NEON与VFPv3加速):
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_DNN_CUDA=OFF \
-D WITH_QT=ON \
-D WITH_GTK=ON \
-D WITH_V4L=ON \
-D OPENCV_ENABLE_NEON=ON \
-D OPENCV_ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
 >-D PYTHON3_EXECUTABLE=/usr/bin/python3 \
 >-D PYTHON3_INCLUDE_DIR=/usr/include/python3.9 \
 >-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
 >..
3、检查输出中“Status:”行是否显示GUI: QT (YES), NEON: YES, VFPV3: YES;若出现“NO”,需核查Qt5CoreConfig.cmake路径或libneon-dev是否安装。
五、执行并行编译与系统级安装
单线程编译在麒麟Arm64平台耗时极长(常超3小时),而盲目使用-j过大可能导致内存溢出(OOM Killer终止进程)。需根据CPU核心数与可用内存动态设定线程数,确保编译效率与稳定性平衡。
1、查询物理CPU核心数量:
nproc
2、以不超过核心数的线程数启动编译(示例为8核):
make -j8
3、编译成功后执行系统级安装(需root权限):
sudo make install
4、更新动态链接库缓存,使/usr/local/lib生效:
sudo ldconfig
六、验证OpenCV安装结果
安装完成后必须验证库文件、头文件路径及Python模块是否可被正确加载,防止出现“ImportError: libopencv_core.so.4.6: cannot open shared object file”等运行时错误。
1、检查OpenCV主库是否注册到系统:
pkg-config --modversion opencv4
2、验证C++头文件路径是否可达:
ls /usr/local/include/opencv4/opencv2/core.hpp
3、在Python中导入并打印版本:
python3 -c "import cv2; print(cv2.__version__)"
4、运行最小GUI测试(需X11桌面环境):
python3 -c "import cv2; import numpy as np; img = np.zeros((100,100,3)); cv2.imshow('test', img); cv2.waitKey(1); cv2.destroyAllWindows()"
5、若第4步弹窗成功且无段错误,说明Qt集成、GUI模块、NEON加速均正常启用。

















