【环境配置 安装 】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

gedit /home/cat/.bashrc

然后在文件里写

# 文件中的内容
export PATH=~/SoftWare/cmake-3.22.1-linux-aarch64/bin:$PATH

命令解释:

export PATH=	告诉 Shell 设置一个名为 PATH 的环境变量。
~/SoftWare/.../bin	新路径: 这是新 CMake 可执行文件所在的目录。
:	分隔符: 用于分隔不同的目录路径。
$PATH	旧路径: 引用并保留系统原有的所有 PATH 路径。

整体作用 将新 CMake 路径添加到 $PATH 的最前面,确保系统在查找 cmake 时,总是先找到指定的版本。

最后保存退出

在不关闭当前终端的情况下,让刚才对 .bashrc 文件的修改立即生效。

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)

# 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

等配置满意了之后 再执行:

make -j6

在这里插入图片描述

接着执行

sudo make install

安装成功后,需要执行两个额外的步骤来确保系统能够找到并使用新的 OpenCV 库:

更新动态链接库缓存:

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打开

 gedit /home/cat/.bashrc

然后把下面的添加进去

# 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

激活配置

source ~/.bashrc

验证是否安装好

pkg-config --modversion opencv4

在这里插入图片描述
成功!!!

上代码验证

通过vscode的ssh连接到板子
创建一个文件夹 在里面写文件 比如main.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 文件中添加如下路径:
"includePath": [
"${workspaceFolder}/**",
"/opt/opencv-4.5.4/include/opencv4"  // <-- 添加这一行
],

步骤 3: 解决链接错误(Linker Errors)
修复了头文件错误后,下一步就是在编译时解决链接错误。项目还需要知道去哪里找到 OpenCV 的库文件(.so 文件)。在项目的 Makefile 或 CMakeLists.txt 中,必须添加正确的编译和链接标志。由于已经设置了 PKG_CONFIG_PATH,最简单的方法是使用 pkg-config 来自动获取所有路径。

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):

source ~/.bashrc

✅ 验证: 运行以下命令,确认系统现在能找到 opencv4 的配置:

pkg-config --modversion opencv4

如果成功,它应该输出 4.5.4。如果仍然报错,确认在 .bashrc 中添加的路径是正确的:
确认 ~/.bashrc 文件中包含以下两行:

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)”里。所以你有两个选择:

方法一:每次都告诉助理工具的“完整路径” (不推荐)

你可以不让助理自己找,而是直接告诉他工具在哪。
每次使用时,你都必须输入完整的路径:

# 在编译 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 系统中管理软件的一种最佳实践

posted @ 2025-11-01 16:20  ycfenxi  阅读(1)  评论(0)    收藏  举报