【环境配置 安装 】RK3588+Ubuntu20.04+cmake3.22+opencv4.54

🌿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)想象成一个办公室助理

  1. 你下达命令 :当你在终端里输入一个命令,比如 cmake,就好像你对助理说:"去把'cmake'这个工具拿给我用。"

  2. 助理的"工具柜" :这个助理很死板,他只会在固定的几个工具柜里寻找工具。他不会把整个办公室都翻一遍。

  3. 这个"工具柜"就是 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)

这样做的好处是:

  1. 方便 :现在你只需要对助理喊一声 cmake,他看到工具柜里的"便条",就会自动跑到正确的路径去把工具拿来。你就可以在任何地方直接使用 cmake 命令了。
  2. 整洁 :CMake 的所有文件(bin, doc, share 等)都还完整地保存在 ~/SoftWare/ 目录下,没有把系统搞乱。
  3. 易于管理 :如果你以后想升级 CMake,比如安装了 cmake-3.23.0,你只需要删除旧的"便条"(软链接),然后为新版本贴一张新的"便条"就行了,非常干净利落。

总结

方法 如何工作 优点 缺点
直接在SoftWare里用 每次都输入完整路径 ~/SoftWare/.../bin/cmake 无需任何设置 非常繁琐,易出错,不通用
创建软链接 (推荐) PATH 目录(如/usr/local/bin)中创建一个指向实际文件的"快捷方式" 一劳永逸,方便整洁,易于管理 需要一条 ln -s 命令来设置

所以,创建软链接并不是"必须"的,但它是为了让你能方便、标准、高效 地使用你安装的程序,是 Linux 系统中管理软件的一种最佳实践

相关推荐
人工智能训练1 小时前
从 1.1.3 到 1.13.2!Ubuntu 24.04 上 Dify 升级保姆级教程(零数据丢失 + 一键迁移)
linux·运维·人工智能·windows·ubuntu·dify
li三河1 小时前
opencv利用freetype写中文
人工智能·opencv·计算机视觉
吴声子夜歌1 小时前
TypeScript——模块解析
javascript·ubuntu·typescript
cnnews3 小时前
手机通过Termux安装unbuntu,开启SSH
linux·运维·ubuntu·ssh
吴声子夜歌3 小时前
TypeScript——声明合并
linux·ubuntu·typescript
吴声子夜歌5 小时前
TypeScript——命名空间
javascript·ubuntu·typescript
yashuk6 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
AI科技星6 小时前
基于四维时空光速不变公设的量子几何与量子力学本质全维度推导验证
开发语言·人工智能·opencv·计算机视觉·数学建模·r语言
纤纡.7 小时前
实战 OpenCV:从文档扫描到目标追踪,四大核心场景全解析
人工智能·opencv·计算机视觉
拾贰_C8 小时前
【Ubuntu | Nvidia 】nvidia 驱动安装
linux·运维·ubuntu