《QT 5.14.1 搭建 opencv 环境全攻略》

《QT 5.14.1 搭建 opencv 环境全攻略》

  • 一、引言
  • 二、准备工作
    • (一)软件下载
    • (二)系统环境确认
  • 三、安装 QT 5.14.1
    • (一)安装包下载与运行
    • (二)环境变量配置
  • 四、OpenCV 安装与配置
    • (一)下载与解压
    • (二)使用 CMake 生成项目文件
    • (三)编译与安装
  • 五、在 QT 项目中配置 OpenCV
    • (一)创建 QT 项目
    • (二)项目文件.pro 配置
  • 六、测试环境搭建是否成功
  • 七、常见问题与解决方法
  • 八、总结与展望

一、引言

在当今数字化飞速发展的时代,计算机视觉技术的应用日益广泛,已然成为众多领域中不可或缺的一部分。而 OpenCV 作为一个开源的计算机视觉和机器学习软件库,更是发挥着举足轻重的作用。它涵盖了图像处理、特征提取、目标检测、运动分析、人脸识别等极为广泛的功能,从最基本的读写图片、降噪滤波、边缘检测,到复杂的行人检测、人脸识别、文本识别等,都能轻松应对。例如在视频监控领域,OpenCV 可通过识别和分析视频中的运动信息,实现实时预警、跟踪目标,提高监控系统的智能化水平;在人机交互方面,其人脸识别功能助力实现人脸解锁、智能语音助手等便捷方式;自动驾驶领域中,也依靠它的目标检测和运动分析功能保障行驶的安全与高效;甚至在医学影像分析上,能帮助医生更准确高效地诊断病情。
与此同时,QT 作为跨平台的 C++ 图形用户界面库,有着丰富的控件库以及高效的信号槽机制等诸多优势,能够帮助开发者打造出美观且易用的界面,让用户交互变得更加便捷高效。
当我们把 OpenCV 和 QT 5.14.1 结合起来时,更是能碰撞出奇妙的火花。OpenCV 负责强大的底层算法运算,QT 5.14.1 则完成上层的应用接口搭建,二者相辅相成,不仅可以简化开发流程,还能提升开发效率,拓展应用的功能与适用范围。然而,要想充分发挥它们结合的优势,首先就需要搭建好对应的开发环境。接下来,我们就详细地介绍一下 QT 5.14.1 搭建 OpenCV 环境的具体步骤,帮助大家顺利迈出开发的第一步,开启计算机视觉应用开发的精彩之旅。

二、准备工作

(一)软件下载

  • QT 5.14.1:可以从 QT
    官方网站(https://download.qt.io/archive/qt/5.14.1/)下载对应版本的安装包,根据操作系统选择合适的版本,如 Windows 系统下的 qt-opensource-windows-x86-5.14.1.exe。
  • OpenCV:推荐使用 OpenCV 4.0 及以上版本,以获取更好的性能和更多的功能支持。从 OpenCV 官方网站(https://opencv.org/releases/)下载相应版本的源代码或预编译库,例如
    opencv-4.5.0-vc14_vc15.exe(适用于 Windows 且与 Visual Studio 编译器兼容)。
  • CMake:这是一个跨平台的安装工具,用于构建 OpenCV 库。可从 CMake 官方网站(https://cmake.org/download/)下载,如 cmake-3.20.0-win64-x64.msi(Windows 64 位版本)。

(二)系统环境确认

  • 操作系统:确保使用的是 Windows 7 及以上版本,建议使用 Windows 10,以保证系统的稳定性和兼容性。
  • 硬件配置:处理器建议选用 Intel Core i5 及以上,内存至少 4GB(推荐 8GB 或更高),硬盘空间需预留足够空间用于安装 QT、OpenCV 及相关工具,建议至少 10GB 以上可用空间,显卡最好支持 OpenGL 3.0 及以上版本,以确保良好的图形处理性能。

三、安装 QT 5.14.1

(一)安装包下载与运行

  • 首先,从 QT 官方网站(https://download.qt.io/archive/qt/5.14.1/)下载 QT 5.14.1
    的安装包,根据您的操作系统选择合适的版本,如 Windows 系统下的 “qt-opensource-windows-x86-5.14.1.exe”。
  • 下载完成后,双击运行安装包,进入安装向导。在安装过程中,您需要按照提示逐步操作:
    • 登录:如果您已有 QT 账号,可以登录;若没有账号,也可以选择跳过此步骤(在安装时断网可自动跳过登录步骤)。
    • 选择同意许可协议,点击 “Next”。
    • 选择安装目录:建议选择一个磁盘空间充足的位置,安装过程大约需要 3.2G 的空间。例如,您可以选择 “D:\Qt\5.14.1” 作为安装目录(具体路径可根据您的实际情况调整)。
    • 选择组件:这一步非常重要,建议至少勾选 “Qt Creator”(这是 QT 的集成开发环境,方便后续开发)、“MSVC 2017 64-bit”(如果您的系统是 64 位且使用 Visual Studio 编译器)以及 “Qt Charts”“Qt Multimedia” 等常用组件,以满足不同的开发需求。当然,如果您不确定具体需要哪些组件,可以先选择默认的全部安装,后续也可以通过维护工具进行组件的添加或删除。
    • 点击 “Install” 开始安装,等待安装过程完成。

(二)环境变量配置

  • 安装完成后,需要将 QT 的相关路径添加到系统环境变量中,以便系统能够识别 QT 的命令和工具。以下是具体步骤:
    • 在 Windows 系统中,右键点击 “此电脑”,选择 “属性”。
    • 在弹出的窗口中,点击 “高级系统设置”。
    • 在 “系统属性” 窗口的 “高级” 选项卡下,点击 “环境变量” 按钮。
    • 在 “系统变量” 列表中,找到 “Path” 变量,点击 “编辑”。
    • 在 “编辑环境变量” 窗口中,点击 “新建”,将 QT 的安装目录下的 “bin” 文件夹路径添加进去,例如 “D:\Qt\5.14.1\mingw73_64\bin”(如果您使用的是 MinGW 编译器)或
      “D:\Qt\5.14.1\msvc2017_64\bin”(如果您使用的是 MSVC 编译器)。注意,这里的路径要根据您实际的安装情况进行填写。
    • 依次点击 “确定” 关闭各个窗口,完成环境变量的配置。

配置完成后,您可以在命令提示符(CMD)中输入 “qmake -v” 命令来验证 QT 是否安装成功。如果成功安装,将显示 QT 的版本信息等相关内容,这表明您的系统已经能够正确识别 QT 的命令,为后续的开发工作做好了准备。

四、OpenCV 安装与配置

(一)下载与解压

  • 前往 OpenCV 官方网站(https://opencv.org/releases/),依据系统及开发需求挑选合适版本的 OpenCV 进行下载,如 Windows 系统可选择 “opencv-4.5.0-vc14_vc15.exe”(此版本适用于与 Visual Studio 编译器配合使用)。
  • 下载完成后,运行安装程序,在安装过程中,可将 OpenCV 解压至指定目录,例如 “D:\OpenCV\4.5.0”,以便后续操作中能便捷地找到相关文件。

(二)使用 CMake 生成项目文件

  • 打开 CMake 软件,在 “Where is the source code” 一栏中选定 OpenCV 的源文件目录,即之前解压的 OpenCV 文件夹下的 “sources” 目录,例如 “D:\OpenCV\4.5.0\sources”。
  • 在 “Where to build the binaries” 处指定一个用于存放编译后文件及中间文件的目录,建议新建一个文件夹,如 “D:\OpenCV\4.5.0\build”。
  • 点击 “Configure” 按钮,此时会弹出一个对话框,根据您的编译器类型进行选择,如使用 Visual Studio 2019,可选择 “Visual Studio 16 2019”,并依据系统架构选择 “x64” 或 “x86”,然后点击 “Finish”。CMake 开始进行配置过程,这可能需要一些时间,期间可能会出现一些红色的错误提示,这是因为某些依赖项未找到或配置不正确。
  • 配置完成后,在 CMake 的界面中,找到 “BUILD_opencv_world” 选项并勾选,它会将 OpenCV 的各个模块编译成一个单独的库文件,方便后续使用。再次点击 “Configure”,等待配置完成,直到界面中不再出现红色错误提示。
  • 最后,点击 “Generate” 按钮,生成用于编译 OpenCV 的项目文件,成功后即可关闭 CMake。

(三)编译与安装

  • 使用 Visual Studio 或其他您选择的编译器打开之前由 CMake 生成的项目文件,通常位于
    “D:\OpenCV\4.5.0\build” 目录下,找到对应的解决方案文件(.sln)并双击打开。
  • 在编译器中,将编译模式调整为 “Release”(如果您需要发布版本的库文件;如果是用于调试,则选择 “Debug” 模式),然后选择 “生成” 菜单中的 “生成解决方案” 选项,开始编译 OpenCV 库文件。编译过程可能会持续较长时间,具体时长取决于您的计算机性能。
  • 编译成功后,找到 “INSTALL” 项目(通常在解决方案资源管理器中),右键点击并选择 “生成”,这将把编译好的 OpenCV 库文件、头文件以及其他相关文件安装到指定的目录下,默认安装目录为 “D:\OpenCV\4.5.0\install”(如果在 CMake 配置过程中未修改安装路径)。

至此,OpenCV 已成功安装并配置完成,接下来就可以在 QT 5.14.1 项目中使用 OpenCV 库进行开发了。

五、在 QT 项目中配置 OpenCV

(一)创建 QT 项目

  • 打开 QT Creator,点击 “File” 菜单,选择 “New File or Project” 选项,弹出新建项目向导。
  • 在向导中,选择 “Qt Widgets Application”(这是一个常用的基于部件的窗体 界面程序模板),点击 “Choose” 按钮。
  • 接着,为项目命名(例如 “OpenCV_QT_Project”)并选择项目保存的位置(建议选择一个无中文、无空格且容易找到的路径),然后点击 “Next”。
  • 在 “Kit Selection” 页面,确保选择了之前安装的 QT 5.14.1 版本对应的编译器(如 “Desktop Qt 5.14.1 MinGW 64-bit”),点击 “Next”。
  • 在 “Class Information” 页面,保持默认的基类(如 “QMainWindow”),点击 “Next”,然后点击 “Finish” 完成项目创建。此时,QT Creator 会生成一个基础的项目结构,包括.pro 文件、源文件(.cpp)、头文件(.h)和界面文件(.ui)等。

(二)项目文件.pro 配置

  • 在 QT Creator 的项目视图中,找到并双击打开项目的.pro 文件,在文件末尾添加以下几行代码:
# 添加OpenCV的头文件路径
INCLUDEPATH += D:/OpenCV/4.5.0/install/include
INCLUDEPATH += D:/OpenCV/4.5.0/install/include/opencv2

# 添加OpenCV的库文件路径(根据实际安装路径和编译模式进行调整)
win32:CONFIG(release, debug|release):{
    LIBS += -LD:/OpenCV/4.5.0/install/x64/mingw/lib/
    LIBS += -lopencv_world450
}
else:win32:CONFIG(debug, debug|release):{
    LIBS += -LD:/OpenCV/4.5.0/install/x64/mingw/lib/
    LIBS += -lopencv_world450d
}
  • 上述代码中,INCLUDEPATH 用于指定 QT 项目寻找 OpenCV 头文件的路径,确保项目能够找到 opencv.hpp 等头文件,从而正确识别和使用 OpenCV 的函数和数据结构。LIBS 则用于指定 OpenCV 库文件的路径和需要链接的库文件名,-L 表示库文件的路径,-l 表示要链接的库文件,这里的 opencv_world450(或 opencv_world450d,d 表示 debug 版本)是在 OpenCV 编译过程中生成的库文件名,它包含了 OpenCV 的各个模块,方便在项目中进行链接和使用。注意,路径中的 D:/OpenCV/4.5.0/install 应根据您实际的 penCV 安装路径进行修改,如果您使用的是其他版本的 OpenCV 或者安装路径不同,都需要相应地调整这些路径。

完成上述配置后,QT 项目就能够成功找到并使用 OpenCV 库了,接下来就可以在项目中编写代码,调用 OpenCV 的强大功能来实现各种计算机视觉任务,如图像处理、目标检测、特征提取等。例如,可以在 main.cpp 文件中添加以下代码来测试 OpenCV 是否配置成功:

#include <QApplication>
#include <opencv2/opencv.hpp>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 读取一张图片(请确保路径正确)
    cv::Mat img = cv::imread("D:/test_image.jpg");
    if (img.empty())
    {
        return -1;
    }

    // 显示图片(这里使用 OpenCV 的 imshow 函数,实际应用中可将图片转换为 QT 可显示的格式进行显示)
    cv::imshow("Image", img);
    cv::waitKey(0);

    return a.exec();
}

这段代码使用 OpenCV 的 imread 函数读取一张图片,如果图片读取成功,则使用 imshow 函数显示该图片,并通过 waitKey 函数等待用户按键关闭窗口。如果程序能够成功运行并显示出图片,说明 QT 项目中 OpenCV 的配置已经成功,您可以继续在项目中深入开发各种计算机视觉应用。

六、测试环境搭建是否成功

以下提供一段简单的代码示例,用于测试 OpenCV 环境是否在 QT 项目中成功搭建:

#include <QApplication>
#include <opencv2/opencv.hpp>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 读取一张图片(请确保路径正确)
    cv::Mat img = cv::imread("D:/test_image.jpg");
    if (img.empty())
    {
        return -1;
    }

    // 显示图片(这里使用OpenCV的imshow函数,实际应用中可将图片转换为QT可显示的格式进行显示)
    cv::imshow("Image", img);
    cv::waitKey(0);

    return a.exec();
}

在上述代码中,首先使用cv::imread函数尝试读取一张指定路径下的图片。如果图片读取成功,即img不为空,接着使用cv::imshow函数将图片显示出来,并通过cv::waitKey(0)等待用户按键操作,防止窗口一闪而过。若程序能够顺利运行并弹出显示图片的窗口,就表明 OpenCV 环境在 QT 项目中已经成功搭建,开发者可以在此基础上进一步利用 OpenCV 的丰富功能进行更复杂的计算机视觉任务开发,比如图像的滤波、特征提取、目标检测等;若程序运行出错,无法显示图片,则需要仔细检查之前的 OpenCV 安装和 QT 项目配置步骤,查看是否存在路径设置错误、库文件链接失败等问题。

七、常见问题与解决方法

在 QT 5.14.1 搭建 OpenCV 环境的过程中,可能会遇到各种各样的问题,以下是一些常见问题及其解决方法:

  • 编译错误
    • “undefined reference to…”:这类错误通常是由于库文件链接不正确导致的。首先检查项目的.pro 文件中,OpenCV 库文件的路径和名称是否正确设置。确保LIBS变量中的路径与实际的 OpenCV 库文件路径一致,并且库文件名没有拼写错误。例如,如果在LIBS中写的是-opencv_world450,但实际安装的是opencv_world451,就会出现这种错误。此时,需要将LIBS中的库文件名修改为正确的版本号。
    • “fatal error: opencv2/opencv.hpp: No such file or directory”:这表明编译器无法找到OpenCV 的头文件。需要检查INCLUDEPATH变量中是否正确设置了 OpenCV 头文件的路径。如果路径中存在中文、空格或者拼写错误,都可能导致编译器无法找到头文件。确保路径指向 OpenCV 安装目录下的include文件夹,并且该文件夹中包含opencv2文件夹和opencv.hpp等头文件。
  • 链接错误
    • error: file not recognized: File format not recognized”:此错误一般是因为penCV 编译文件版本和 QT 项目版本不匹配造成的。比如,如果 OpenCV 是用 64 位编译器编译的,而 QT 项目选择了 32 位编译器,就会出现这种情况。此时,需要确保 OpenCV 和 QT 项目的编译器版本一致,即如果 OpenCV 是 64 位的,QT 项目也应选择 64 位的编译器(如 “Desktop Qt 5.14.1 MinGW 64-bit”)。
  • 环境变量问题
    • 程序运行时提示找不到 dll 文件”:这可能是因为没有将 OpenCV 的bin目录添加到系统环境变量中,或者添加后没有重新启动计算机使环境变量生效。解决方法是将 OpenCV 安装目录下的bin文件夹路径(例如 “D:\OpenCV\4.5.0\install\x64\mingw\bin”)添加到系统环境变量的 “Path” 变量中,然后重新启动计算机。
    • 在 CMake 配置过程中出现关于 Python 路径的错误”:如果在 CMake 配置 OpenCV 时,出现与 Python 相关的错误,可能是因为 Python 的安装路径中含有中文。建议卸载ython,重新安装到一个无中文的路径下,并确保在安装过程中勾选了 “Add Python to PATH” 选项,将 Python 添加到系统环境变量中。

如果在搭建过程中遇到其他问题,可以仔细查看编译器的错误提示信息,通常这些信息会给出一些线索,帮助定位问题所在。同时,也可以在相关的技术论坛(如 Stack Overflow、CSDN 等)上搜索类似问题的解决方案,或者向同行请教,以解决遇到的困难,顺利完成 QT 5.14.1 与 OpenCV 环境的搭建,开启计算机视觉项目的开发之旅。

八、总结与展望

通过以上详细的步骤,我们成功搭建了 QT 5.14.1 与 OpenCV 的开发环境。这一过程虽然可能会遇到一些问题,但只要按照步骤仔细操作,并参考常见问题的解决方法,就能够顺利完成搭建,为后续的计算机视觉应用开发奠定坚实的基础。
随着技术的不断发展,计算机视觉在智能安防、自动驾驶、医疗影像分析、工业检测等众多领域的应用将越来越广泛和深入。掌握 QT 与 OpenCV 的开发技能,将为开发者打开一扇通向这些前沿领域的大门,创造出更多具有创新性和实用性的应用程序。希望读者能够在这个基础上,不断探索和实践,充分发挥自己的创造力,为推动计算机视觉技术的发展贡献自己的力量,在这个充满机遇和挑战的领域中取得丰硕的成果,开创属于自己的精彩篇章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/941086.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

javaEE-多线程编程-3

目录 java 常见的包 : 回调函数: 什么是线程: 第一个线程: 验证多线程执行: 内核: 调用sleep()方法: 执行结果分析: 线程创建的几种方式: 1.继承Thread类,重写run()方法. 2.实现Runnable接口,重写run()方法. 3.继承Thread类,重写run()方法.但使用匿名内部类 4.实现…

FFmpeg 框架简介和文件解复用

文章目录 ffmpeg框架简介libavformat库libavcodec库libavdevice库 复用&#xff08;muxers&#xff09;和解复用&#xff08;demuxers&#xff09;容器格式FLVScript Tag Data结构&#xff08;脚本类型、帧类型&#xff09;Audio Tag Data结构&#xff08;音频Tag&#xff09;V…

芯片级IO (Pad) Ring IP Checklist

SoC top顶层数字后端实现都会涉及到IO Ring &#xff08;PAD Ring&#xff09;的设计。这里面包括VDD IO,VDDIO IO, Signal IO, Corner IO&#xff0c;Filler IO&#xff0c;IO power cut cell等等。 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字IC后端实现TOP F…

圣诞快乐(h5 css js(圣诞树))

一&#xff0c;整体设计思路 圣诞树h5&#xff08;简易&#xff09; 1.页面布局与样式&#xff1a; 页面使用了全屏的黑色背景&#xff0c;中央显示圣诞树&#xff0c;树形由三层绿色的三角形组成&#xff0c;每一层的大小逐渐变小。树干是一个棕色的矩形&#xff0c;位于三角…

Linux应用开发————mysql数据库表

mysql数据库表操作 查看表的结构 mysql> desc / describe 表名; 或者&#xff1a; mysql> show create table 表名; 常见数据库引擎&#xff1a; innodb, myISAM... 删除表 mysql> drop tabl…

移动网络(2,3,4,5G)设备TCP通讯调试方法

背景&#xff1a; 当设备是移动网络设备连接云平台的时候&#xff0c;如果服务器没有收到网络数据&#xff0c;移动物联设备发送不知道有没有有丢失数据的时候&#xff0c;需要一个抓取设备出来的数据和服务器下发的数据的方法。 1.服务器系统是很成熟的&#xff0c;一般是linu…

Unity中的委托和事件(UnityAction、UnityEvent)

委托和事件 &#x1f392;什么是委托&#xff0c;委托的关键字是Delegate&#xff0c;委托是一种函数的容器&#xff0c;运行将函数做为变量来进行传递 通过Delegate关键字我们声明了一个无参无返回的委托&#xff0c;通过这个委托我们可以存储无参无返回的函数 public deleg…

基于SpringBoot的“交流互动系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“交流互动系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能图 管理员登录界面图 个人信息界面图 个人…

LeetCode hot100-93

https://leetcode.cn/problems/longest-palindromic-substring/description/?envTypestudy-plan-v2&envIdtop-100-liked 5. 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。状态定义 我们用一个二维数组 dp[i][j] 表示子串 s[i…j] 是否是回文&…

C语言入门指南:从零开始的编程之路

记得我刚开始接触编程时,也像很多初学者一样充满疑惑。编程看起来很神奇,但要如何开始呢?经过多年编程经验的积累,今天和大家分享如何入门C语言编程。 C语言诞生于1972年,由Dennis Ritchie在贝尔实验室开发。它的出现彻底改变了计算机编程的历史。虽然现在有很多更新的编程语…

详解Redis的String类型及相关命令

目录 SET GET MGET MSET SETNX SET和SETNX和SETXX对比 INCR INCRBY DECR DECRBY INCRBYFLOAT APPEND GETRANGE SETRANGE STRLEN 内部编码 SET 将 string 类型的 value 设置到 key 中。如果 key 之前存在&#xff0c;则覆盖&#xff0c;⽆论原来的数据类型是什么…

SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql

本文主要介绍在 Spring Boot 中使用 AOP 实现自定义日志记录并保存在 Mysql 的方法。先阐述记录日志的重要性及传统方式的弊端&#xff0c;提出新方式&#xff0c;即通过创建自定义注解、切面类等&#xff0c;将重要日志存到数据库&#xff0c;还给出了创建日志表、注解类、切面…

对golang的io型进程进行off-cpu分析

背景&#xff1a; 对于不能占满所有cpu核数的进程&#xff0c;进行on-cpu的分析是没有意义的&#xff0c;因为可能程序大部分时间都处在阻塞状态。 实验例子程序&#xff1a; 以centos8和golang1.23.3为例&#xff0c;测试下面的程序&#xff1a; pprof_netio.go package m…

CTF入门:以Hackademic-RTB1靶场为例初识夺旗

一、网络扫描 靶机ip地址为192.168.12.24 使用nmap工具进行端口扫描 nmap -sT 192.168.12.24 二、信息收集 1、80端口探索 靶机开放了80和22端口&#xff0c;使用浏览器访问靶机的80端口&#xff0c;界面如下&#xff1a; 点击target发现有跳转&#xff0c;并且url发生相应变…

腾讯云智能结构化OCR:以多模态大模型技术为核心,推动跨行业高效精准的文档处理与数据提取新时代

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大三学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

SD ComfyUI工作流 根据图像生成线稿草图

文章目录 线稿草图生成SD模型Node节点工作流程工作流下载效果展示线稿草图生成 该工作流的设计目标是将输入的图像转换为高质量的线稿风格输出。其主要流程基于 Stable Diffusion 技术,结合文本和图像条件,精确生成符合预期的线条艺术图像。工作流的核心是通过模型的条件设置…

Zabbix6.0升级为6.4

为了体验一些新的功能&#xff0c;比如 Webhook 和问题抑制等&#xff0c;升级个小版本。 一、环境信息 1. 版本要求 一定要事先查看官方文档&#xff0c;确认组件要求的版本&#xff0c;否则版本过高或者过低都会出现问题。 2. 升级前后信息 环境升级前升级后操作系统CentOS…

网络安全概论——身份认证

一、身份证明 身份证明可分为以下两大类 身份验证——“你是否是你所声称的你&#xff1f;”身份识别——“我是否知道你是谁&#xff1f;” 身份证明系统设计的三要素&#xff1a; 安全设备的系统强度用户的可接受性系统的成本 实现身份证明的基本途径 所知&#xff1a;个…

LabVIEW中的“Synchronize with Other Application Instances“

在LabVIEW中&#xff0c;“Synchronize with Other Application Instances”是一个常见的提示或错误&#xff0c;通常出现在尝试并行运行多个LabVIEW实例时&#xff0c;特别是当你打开多个VI或项目时。这个问题可能影响程序的执行流程&#xff0c;导致不同实例之间的数据同步或…

OpenGL ES 01 渲染一个四边形

项目架构 着色器封装 vertex #version 300 es // 接收顶点数据 layout (location 0) in vec3 aPos; // 位置变量的属性位置值为0 layout (location 1) in vec4 aColors; // 位置变量的属性位置值为1 out vec4 vertexColor; // 为片段着色器指定一个颜色输出void main() {gl…