🌿Ubuntu20.04原生的版本直接用命令行下载的得到的opencv和cmake版本比较低,可能对于后面的项目而言不太友好,所以需要手动去安装一下相对应的版本~ 版本和版本之间还是有些坑🕳的,所以这边一步一步记录一下~
先附上opencv和cmake的下载地址,可以通过主机直接下载后通过ssh发送给rk3588,也可以直接用wget命令进行下载
CMAKE 3.22.1
opencv 4.5.4
opencv_contrib_4.5.4.zip
Ubuntu 20.04 下 OpenCV 4.5.4 编译安装与系统默认 OpenCV 4.2 共存切换指南【2025最新版!!!】
cmake 3.22+ubuntu20.04 安装教程
RK3588编译Opencv最新版
以上两种方案均可,上面的链接是通过后者实现的,我是通过前者实现的。当然,还有可能在拖拽的时候遇到各种问题,比如MobaXterm上传不上去,
然后这个帖子救了我命!重要的话说三遍,删除重配,删除重配,删除重配!! 只edit session大概率不行!
为了避免一头雾水,我把我安装的路径先贴上

文章目录
CMAKE安装
cmake 3.22+ubuntu20.04 安装教程
!!但是要注意的是 下载cmake 需要下载-linux-aarch64版本的
CMAKE 3.22.1
步骤就是,点上面这个链接,然后用本地电脑下载,然后利用ssh拖拽到板子上就可以了。可以在板子上创建一个software的文件,利用unzip命令解压即可,opencv也是同理。
类似这样 通过ssh连接到我的鲁班猫然后进行操作~
安装cmake的之后,记得通过软链接的形式形成快捷方式给usr/bin 至于这个路径是什么 根据自己的板子具体配置。可以输入
cmake --version
这个时候板子会提醒你不存在,然后会给一个路径给你 这个路径就是你需要软链接的路径
sudo ln -s ~/SoftWare/cmake-3.22.1-linux-aarch64/bin/cmake /usr/local/bin/cmake
命令部分 解释
sudo 获取管理员权限,因为 /usr/local/bin 是系统目录。
ln -s 创建软链接 (symbolic link),相当于 Windows 系统的快捷方式。
~/SoftWare/.../cmake 源路径: 指向您新下载的 CMake 可执行文件的实际位置。
/usr/local/bin/cmake 目标路径: 系统在 /usr/local/bin 中创建名为 cmake 的快捷方式。
ln -s 命令是创建"软链接",你可以把它理解为 Windows 里的"快捷方式"。
接下来就进行环境变量的配置
确保Shell(终端)总是优先使用新安装的 CMake 版本(因为有时系统或项目可能仍会引用旧版本),并且能够解决遇到的 CMAKE_ROOT 错误。
将修改 Shell 配置文件 ~/.bashrc
bash
gedit /home/cat/.bashrc
然后在文件里写
bash
# 文件中的内容
export PATH=~/SoftWare/cmake-3.22.1-linux-aarch64/bin:$PATH
命令解释:
export PATH= 告诉 Shell 设置一个名为 PATH 的环境变量。
~/SoftWare/.../bin 新路径: 这是新 CMake 可执行文件所在的目录。
: 分隔符: 用于分隔不同的目录路径。
$PATH 旧路径: 引用并保留系统原有的所有 PATH 路径。
整体作用 将新 CMake 路径添加到 $PATH 的最前面,确保系统在查找 cmake 时,总是先找到指定的版本。
最后保存退出
在不关闭当前终端的情况下,让刚才对 .bashrc 文件的修改立即生效。
bash
source ~/.bashrc
然后后面就可以愉快地使用cmke了
opencv安装
安装之前
RK3588要是没有下载numpy最好装一下,同时也要注意一下版本的问题!
numpy安装
numpy的版本问题要考虑 python的版本,比如如果你要安装numpy 1.25版本 ,python就得3.8以上 同时numpy的版本还得兼顾opencv 4.5.4 的版本
numpy 下载链接
所以需要自己下一个 可以使用直接自己下 然后ssh发送,也可以使用命令行
pip3 install numpy==1.21.6 -i https://pypi.tuna.tsinghua.edu.cn/simple
要配置下载的 NumPy 1.25.0 版本,而不是让 pip3 安装最新稳定版,您仍然需要使用 pip3,但要指向您本地的文件:
cat@lubancat:~/SoftWare$ pip3 install ./numpy-1.25.0.zip
## 如果网络速度慢 换个源
pip3 install ./numpy-1.25.0.zip -i https://pypi.tuna.tsinghua.edu.cn/simple
liblapack-dev的下载
然后需要安装一下liblapack-dev 也就是opencv的支持包
sudo apt update
sudo apt install libopenblas-dev liblapack-dev
sudo apt install default-jdk
OpenCV的安装
Ubuntu 20.04 下 OpenCV 4.5.4 编译安装与系统默认 OpenCV 4.2 共存切换指南【2025最新版!!!】
首先解压一下我们下载的两个文件
unzip opencv-4.5.4.zip
unzip opencv_contrib-4.5.4
然后进入opencv的目录
#1.创建build
cat@lubancat:~/SoftWare$ cd opencv-4.5.4/build
#2.新设置 PATH 环境变量
cat@lubancat:~/SoftWare/opencv-4.5.4/build$ export PATH=~/SoftWare/cmake-3.22.1-linux-aarch64/bin:$PATH
#3.编译运行
cat@lubancat:~/SoftWare/opencv-4.5.4/build$ cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/opencv-4.5.4 \
-DOPENCV_EXTRA_MODULES_PATH=~/SoftWare/opencv_contrib-4.5.4/modules \
-DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF \
-DWITH_QT=ON -DWITH_OPENGL=ON -DWITH_TBB=ON \
-DWITH_GSTREAMER=ON -DENABLE_NEON=ON -DENABLE_VFPV3=ON \
-DOPENCV_GENERATE_PKGCONFIG=ON
但是可能会出现各种各样的问题。。。。
比如
如果配置被 VFPV3 错误中断,请重新运行 CMake,并删除 -DENABLE_VFPV3=ON 选项:
cat@lubancat:~/SoftWare/opencv-4.5.4/build$ cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/opencv-4.5.4 \
-DOPENCV_EXTRA_MODULES_PATH=~/SoftWare/opencv_contrib-4.5.4/modules \
-DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF \
-DWITH_QT=ON -DWITH_OPENGL=ON -DWITH_TBB=ON \
-DWITH_GSTREAMER=ON -DENABLE_NEON=ON \
-DOPENCV_GENERATE_PKGCONFIG=ON
参数解释:
参数 | 含义 |
---|---|
-DCMAKE_BUILD_TYPE=Release |
设置构建类型为 Release ,即编译优化版本(运行更快,体积更小)。 可选的还有 Debug (调试版本)。 |
-DCMAKE_INSTALL_PREFIX=/opt/opencv-4.5.4 |
设置安装路径为 /opt/opencv-4.5.4 ,即编译完成后 make install 会把库和头文件安装到这个目录。 |
-DOPENCV_EXTRA_MODULES_PATH=~/SoftWare/opencv_contrib-4.5.4/modules |
指定 opencv_contrib 模块的路径,这些是非官方的扩展模块(如 SIFT、SURF、DNN 等)。 |
-DBUILD_EXAMPLES=OFF |
不编译 OpenCV 的示例程序。 |
-DBUILD_TESTS=OFF |
不编译测试程序。 |
-DBUILD_PERF_TESTS=OFF |
不编译性能测试程序。 |
-DWITH_QT=ON |
启用 Qt 支持,用于图形界面(如 highgui 模块中的窗口显示)。 |
-DWITH_OPENGL=ON |
启用 OpenGL 支持,用于硬件加速的图形渲染。 |
-DWITH_TBB=ON |
启用 Intel TBB(Threading Building Blocks),用于并行计算优化。 |
-DWITH_GSTREAMER=ON |
启用 GStreamer 支持,用于视频流处理(如摄像头、视频文件)。 |
-DENABLE_NEON=ON |
启用 ARM 架构下的 NEON 指令集优化(适用于树莓派、Jetson 等 ARM 设备)。 |
-DOPENCV_GENERATE_PKGCONFIG=ON |
生成 .pc 文件,供 pkg-config 工具使用,方便其他项目链接 OpenCV。 |
【问题】因为网速问题下载不相关网络模型
相关的网络模型传到我的gitee上了 gitee网络模型下载
下面是问题描述
或者说有些直接卡在这
第一个wechat_qrcode问题:

直接去这个链接
把这几个文件都拖到cat@lubancat:~/SoftWare/opencv-4.5.4/.cache/wechat_qrcode/
然后重新cmake
其他的几个出现错误的 也是这样的做法
这个博主下载了好多个直接放在网盘里 太赞了!!
安装OpenCV时提示缺少boostdesc_bgm.i文件的问题
下载下来放这儿 我这边是通过shell直接拖的
make install
重新编译之后 出现这个就可以在build目录执行了
配置输出中显示了一些警告和未找到的依赖项,这些可能会影响某些可选功能,但不一定会阻止核心 OpenCV 库的编译和使用~ 所以可以根据配置的需要进一步处理
我这边安装了SFM/Tesseract 依赖(可选),启用优化的线性代数库 (OpenBLAS/Lapack)
bash
# Glog/Gflags for SFM
sudo apt install libgoogle-glog-dev libgflags-dev
# Tesseract for OCR
sudo apt install libtesseract-dev
# 线性代数优化:推荐安装 OpenBLAS
sudo apt install libopenblas-dev liblapacke-dev
等配置满意了之后 再执行:
bash
make -j6

接着执行
bash
sudo make install
安装成功后,需要执行两个额外的步骤来确保系统能够找到并使用新的 OpenCV 库:
更新动态链接库缓存:
bash
sudo ldconfig
配置环境变量 (针对 pkg-config 和 Shell)
PKG_CONFIG_PATH: 允许 C/C++ 编译系统使用 pkg-config 命令来自动查找 OpenCV 的编译标志(-I 头文件路径和 -L 链接库路径)。
PYTHONPATH (可选,但推荐): 帮助 Python 解释器找到 OpenCV 的 Python 绑定 (cv2.so 文件)。
由于在 CMake 配置时使用了 -DOPENCV_GENERATE_PKGCONFIG=ON,它安装了 opencv4.pc 文件到 /opt/opencv-4.5.4/lib/pkgconfig/。需要将这个路径添加到系统变量中
同样把下面这些添加到环境变量
先用gedit打开
bash
gedit /home/cat/.bashrc
然后把下面的添加进去
bash
# OpenCV 4.5.4 Configuration
export LD_LIBRARY_PATH=/opt/opencv-4.5.4/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/opt/opencv-4.5.4/lib/pkgconfig:$PKG_CONFIG_PATH
# PYTHONPATH is often necessary for Python to find cv2.so
# If you used the default Python installation path, this may be simpler:
export PYTHONPATH=/opt/opencv-4.5.4/lib/python3:$PYTHONPATH
激活配置
bash
source ~/.bashrc
验证是否安装好
bash
pkg-config --modversion opencv4

🌞成功!!!
上代码验证
通过vscode的ssh连接到板子
创建一个文件夹 在里面写文件 比如main.cpp
cpp
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(void)
{
//1.测试图像
char img_path[]="fengmian.jpg";
Mat img0,img1,img2;//意思是一个二维的图像
//读取原图
img0=imread(img_path,IMREAD_UNCHANGED);
if(img0.empty()){
waitKey(6000);
return -1;
}
//读取灰度图像
img1=imread(img_path,IMREAD_GRAYSCALE);
//加载这个图像 保留他的颜色信息
img2=imread(img_path,IMREAD_COLOR);
if(img2.empty()){
waitKey(6000);
return -1;
}
//产生一个窗口
imshow("img0",img0);
imshow("img1",img1);
imshow("img2",img2);
// waitKey();//等待按键按下
//把生成的图片保存到本地
imwrite("img0.png",img0);
imwrite("img1.png",img1);
imwrite("img2.png",img2);
cout<<"success!\n";
return 0;
}
这个时候可能会在cv头文件标红
步骤 1: 创建或找到 VS Code 配置文件
在 VS Code 中,按 Ctrl + Shift + P (或 F1) 打开命令面板。
输入 "C/C++: Edit Configurations (UI)" 并选择它。
这会打开或创建一个名为 c_cpp_properties.json 的文件。
步骤 2: 添加 OpenCV 头文件路径
在打开的配置界面中(或直接在 c_cpp_properties.json 文件中),
找到 configurations 数组下的主要配置对象(通常是 "name": "Linux"),
然后修改或添加 includePath 字段。
需要添加的主要路径是:/opt/opencv-4.5.4/include/opencv4。
在 JSON 文件中添加如下路径:
cpp
"includePath": [
"${workspaceFolder}/**",
"/opt/opencv-4.5.4/include/opencv4" // <-- 添加这一行
],
步骤 3: 解决链接错误(Linker Errors)
修复了头文件错误后,下一步就是在编译时解决链接错误。项目还需要知道去哪里找到 OpenCV 的库文件(.so 文件)。在项目的 Makefile 或 CMakeLists.txt 中,必须添加正确的编译和链接标志。由于已经设置了 PKG_CONFIG_PATH,最简单的方法是使用 pkg-config 来自动获取所有路径。
c
g++ main.cpp -o main_app $(pkg-config --cflags --libs opencv4)
./main_app
🌿最后就能编译运行成功辣~~
如果报错,需要检查一下自己的环境变量是不是有问题
比如:
pkg-config 找不到 opencv4.pc 文件,这就是收到错误提示 "Package opencv4 was not found in the pkg-config search path." 的原因。
你已经在 .bashrc 中添加了配置,但是你可能没有激活它,或者系统在执行 g++ 命令时没有继承到最新的环境变量。
操作: 重新运行 source 命令来激活你在 .bashrc 中添加的配置(包PKG_CONFIG_PATH):
bash
source ~/.bashrc
✅ 验证: 运行以下命令,确认系统现在能找到 opencv4 的配置:
bash
pkg-config --modversion opencv4
如果成功,它应该输出 4.5.4。如果仍然报错,确认在 .bashrc 中添加的路径是正确的:
确认 ~/.bashrc 文件中包含以下两行:
bash
export LD_LIBRARY_PATH=/opt/opencv-4.5.4/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/opt/opencv-4.5.4/lib/pkgconfig:$PKG_CONFIG_PATH
【拓】关于软链接
对于cmake创建软链接:
可以不创建软链接 ,直接使用你在 SoftWare
目录里解压的 CMake。
但是,那样会非常不方便。
把终端(Shell)想象成一个办公室助理
-
你下达命令 :当你在终端里输入一个命令,比如
cmake
,就好像你对助理说:"去把'cmake'这个工具拿给我用。" -
助理的"工具柜" :这个助理很死板,他只会在固定的几个工具柜里寻找工具。他不会把整个办公室都翻一遍。
-
这个"工具柜"就是
PATH
变量 :在 Linux 系统中,这个"工具柜列表"就是一个叫做PATH
的环境变量。你可以通过echo $PATH
命令查看它包含了哪些目录。通常会包含:/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
当你在终端输入
cmake
时,系统就会依次在上面这些目录里查找有没有一个叫cmake
的可执行文件。如果所有目录都找遍了还没找到,它就会告诉你:command not found
(找不到命令)。
两种找到工具的方法
现在,你的 cmake
工具放在了 ~/SoftWare/cmake-3.22.1-linux-aarch64/bin
这个你自己的文件夹 里,它并不在 助理的"工具柜列表 (PATH
)"里。所以你有两个选择:
方法一:每次都告诉助理工具的"完整路径" (不推荐)
你可以不让助理自己找,而是直接告诉他工具在哪。
每次使用时,你都必须输入完整的路径:
bash
# 在编译 OpenCV 时,你的命令就得这么写
~/SoftWare/cmake-3.22.1-linux-aarch64/bin/cmake -D CMAKE_BUILD_TYPE=RELEASE .....
这样做当然可以,但显而易见的缺点是:
- 太麻烦:每次都要打一长串字符。
- 易出错:路径这么长,很容易打错。
- 不通用 :很多脚本和程序默认就是直接调用
cmake
,它们不会知道你的 cmake 安装在了这个特殊的路径下。
方法二:给助理一个"快捷方式" (推荐的方法,即创建软链接)
创建软链接 (sudo ln -s ...
) 就好像你在助理常用的一个工具柜里(比如 /usr/local/bin
)贴了一张便条,上面写着:
"如果你要找
cmake
工具,请去~/SoftWare/cmake-3.22.1-linux-aarch64/bin/
这个地方拿。"
这个"便条"就是软链接 (Symbolic Link)。
这样做的好处是:
- 方便 :现在你只需要对助理喊一声
cmake
,他看到工具柜里的"便条",就会自动跑到正确的路径去把工具拿来。你就可以在任何地方直接使用cmake
命令了。 - 整洁 :CMake 的所有文件(
bin
,doc
,share
等)都还完整地保存在~/SoftWare/
目录下,没有把系统搞乱。 - 易于管理 :如果你以后想升级 CMake,比如安装了
cmake-3.23.0
,你只需要删除旧的"便条"(软链接),然后为新版本贴一张新的"便条"就行了,非常干净利落。
总结
方法 | 如何工作 | 优点 | 缺点 |
---|---|---|---|
直接在SoftWare 里用 |
每次都输入完整路径 ~/SoftWare/.../bin/cmake |
无需任何设置 | 非常繁琐,易出错,不通用 |
创建软链接 (推荐) | 在 PATH 目录(如/usr/local/bin )中创建一个指向实际文件的"快捷方式" |
一劳永逸,方便整洁,易于管理 | 需要一条 ln -s 命令来设置 |
所以,创建软链接并不是"必须"的,但它是为了让你能方便、标准、高效 地使用你安装的程序,是 Linux 系统中管理软件的一种最佳实践。