当前位置: 首页 > news >正文

【AI时代速通QT】第三节:Linux环境中安装QT并做测试调试

目录

引言

一、Linux QT开发环境的核心要素

1.1 编译器(g++)与构建工具(make)

1.2 搞定 OpenGL 依赖

二、核心步骤——安装 Qt Creator

2.1 获取官方在线安装器

2.2 赋予文件执行权限

2.3 运行图形化安装向导

 三、Linux上创建并运行您的第一个 Qt 程序

3.1 启动 Qt Creator

3.2 使用向导创建新项目

3.3 编译并见证奇迹

四、让程序在调试器下运行

总结


 🎬 攻城狮7号:个人主页

🔥 个人专栏:C++QT跨平台界面编程

⛺️ 君子慎独!

 🌈 大家好,欢迎来访我的博客!
⛳️ 此篇文章主要介绍 Linux环境中安装QT并做测试调试
📚 本期文章收录在《C++QT跨平台界面编程》,大家有兴趣可以自行查看!
⛺️ 欢迎各位 ✔️ 点赞 👍 收藏 ⭐留言 📝!

引言

        对于许多 C++ 开发者来说,Qt 框架无疑是一个强大而迷人的存在。它不仅仅是一个 GUI 工具库,更是一个功能完备的跨平台应用开发框架,涵盖了从图形界面、网络通信、数据库操作到多媒体处理的方方面面。借助 Qt,我们可以真正实现"一次编写,处处编译",让我们的应用程序优雅地运行在 Windows、macOS 和 Linux 等不同操作系统之上。上两节我们介绍了QT在windows上的安装和项目创建,这一节我们将介绍QT在Linux系统下的安装和使用。

        在 Windows 和 macOS 上,Qt 的安装过程通常是一条平坦大道,图形化的安装向导已经为我们铺平了几乎所有的道路。然而,当我们踏入 Linux 这片以开放和自由著称的土地时,情况就稍微变得"有趣"了一些。Linux 的多样性和高度可定制性,意味着我们开发者需要更多地了解系统底层的工作方式,亲手完成一些环境的配置工作。

        这并非一件坏事。恰恰相反,这个过程能让我们更深刻地理解应用程序是如何被编译、链接并最终在屏幕上渲染出来的。

        我们的目标是,不仅要"授人以鱼",告诉您每一步该"做什么",更要"授人以渔",解释"为什么要这么做"。无论您是 Linux 新手还是 C++ 老兵,相信都能跟随本文的指引,顺利地在您的 Linux 系统中点亮第一个 Qt "Hello World"窗口。

一、Linux QT开发环境的核心要素

        在正式请出 Qt 这位主角之前,我们必须为它搭建一个稳固的舞台。在 Linux 中进行 C++ 开发,我们至少需要两样核心工具:编译器和构建系统

1.1 编译器(g++)与构建工具(make)

        想象一下,您是一位用 C++ 语言书写建筑蓝图(源代码)的设计师。这份蓝图本身,建筑工人(计算机CPU)是看不懂的。这时,我们就需要一位翻译官——编译器。在 Linux 世界中,GCC (GNU Compiler Collection) 是最负盛名的编译器套件,而 `g++` 就是其中专门负责翻译 C++ 代码的成员。它能将我们写的 `.cpp` 文件,转换成机器能够执行的二进制指令。

        当一个项目变得庞大,包含了成百上千个源文件时,手动一个一个地去编译它们,就像让一位翻译官去逐字逐句地翻译一本巨著,效率低下且容易出错。于是,构建系统应运而生,`make` 就是这个领域的"老师傅"。我们只需制定一套规则(Makefile),`make` 就能自动分析文件之间的依赖关系,决定哪些文件需要重新编译,然后有条不紊地调用 `g++` 等工具完成整个编译和链接过程。

        在基于 Debian/Ubuntu 的 Linux 发行版中,我们无需单独安装 `g++` 和 `make`。系统提供了一个名为 `build-essential` 的"开发大礼包",它包含了编译器、构建工具以及其他开发所需的各种基础库和头文件。

        打开您的终端,执行以下命令来安装这个基础套件:

sudo apt-get updatesudo apt-get install build-essential

        第一条命令 `sudo apt-get update` 用于刷新软件源列表,确保我们能获取到最新的软件包信息。第二条命令则是正式安装。当系统提示您确认时,输入 `Y` 并按回车即可。这个"大礼包"为我们后续的开发工作奠定了坚实的基础。

        如果我们只想在windows系统下使用linux,我们可以安装VMware虚拟机,在虚拟机上安装Ubuntu,由此测试在linux上安装QT。如果不安装上面的套件,就要另外执行下面命令来安装g++和make:

apt-get install g++ make

1.2 搞定 OpenGL 依赖

        在源文件中,作者提到了一个关键的步骤:在编译项目时遇到了一个关于"基友的库"(原文谐音,实为 GL 库)的错误,最终通过安装一个名为 `libgl1-mesa-dev` 的软件包解决了问题。这其实触及了 Qt 图形渲染的核心。

        Qt 能够绘制出精美的窗口、按钮、图表和动画,其背后离不开图形硬件的强大能力。而 OpenGL (Open Graphics Library) 就是应用程序与图形硬件之间沟通的桥梁,它是一套标准的图形编程接口(API)。

        在 Linux 上,Mesa 3D 是 OpenGL 最主流的开源实现。我们要安装的 `libgl1-mesa-dev` 正是 Mesa 库的开发版本。这里的 `-dev` 后缀至关重要,它告诉系统,我们不仅需要能够在系统上运行 OpenGL 程序的库文件(`libgl1-mesa`),更需要用于编译 Qt 程序的头文件和链接库。没有这些开发文件,编译器在构建 Qt 程序时,就找不到 OpenGL 相关的函数定义,从而导致链接错误。

        在遇到错误后才"亡羊补牢",我们不如"未雨绸缪",在安装 Qt 之前就将它准备好:

sudo apt-get install libgl1-mesa-dev

        提前完成这一步,可以确保我们的 Qt 安装和首次项目编译过程如丝般顺滑,避免不必要的挫败感。

二、核心步骤——安装 Qt Creator

        万事俱备,只欠东风。现在,我们可以正式开始安装 Qt 框架和它的官方集成开发环境(IDE)—— Qt Creator 了。

2.1 获取官方在线安装器

        Qt 官方提供了在线(Online)和离线(Offline)两种安装方式。离线安装包体积巨大,包含了所有模块;而在线安装器则是一个小巧的启动程序,它会根据你的选择,从网络上下载你需要的组件。我们推荐使用在线安装器,因为它更灵活,也能节省大量的磁盘空间。

        您可以直接从 Qt 官网( https://www.qt.io/download )找到适用于 Linux 的在线安装器。或者下载第一节中我们提供的 `qt-unified-linux-x64-4.7.0-online.run` 安装文件。

2.2 赋予文件执行权限

        在 Linux 系统中,出于安全考虑,从网络上下载的文件默认是没有执行权限的。我们需要手动为它"授权"。假设您将文件下载到了"下载"目录,请打开终端,进入该目录并执行:

cd ~/下载chmod +x qt-unified-linux-x64-*.run

        这里的 `chmod +x` 命令就是"change mode"和"add executable"的缩写,`*` 是一个通配符,可以匹配不同版本号的文件名。

2.3 运行图形化安装向导

        现在,激动人心的时刻到了。在终端中运行安装器:

./qt-unified-linux-x64-*.run

        一个熟悉的图形化安装向导将展现在您面前。接下来的步骤需要您多加留意:

 (1)Qt Account:Qt 的开源版本需要使用 Qt Account 登录进行安装。如果您没有账户,请花几分钟免费注册一个。或者如下直接跳过。

(2)安装目录:向导会建议一个安装路径,例如 `~/Qt`。这是一个非常好的选择,因为它位于您的用户主目录下,不需要管理员权限即可写入,方便后续管理。或者安装在 `/opt/Qt` 目录,这也是一种常见的做法,但通常需要 `sudo` 权限来运行安装器,且管理起来稍显不便。对于个人开发而言,我们更推荐默认的用户主目录路径。

(3)关键一步:选择安装组件:这是整个安装过程中最核心、也最容易出错的环节。仔细勾选您需要的组件。

        - Qt 版本:在最顶层,您会看到可供选择的 Qt 版本,例如 `Qt 5.9.0`。请展开您希望安装的版本。

        - 核心模块:在展开的树形列表中,找到名为 `Desktop development (GCC 64-bit)` 或 `Desktop GCC` 的条目。这正是源文件中提到的 `disktop GCC`,务必勾选它!这个组件包含了使用 g++ 编译器构建桌面应用所需的所有预编译好的 Qt 库。

        - 可选模块:您可以根据需要,勾选其他模块,例如 `Qt WebEngine`(用于嵌入网页内容)、`Qt Charts`(用于绘制图表)等。对于初学者,暂时可以只保留默认的核心模块。

        - 开发工具:向下滚动,确保 `Qt Creator` 已经被勾选。它通常是默认选中的。

        确认您的选择无误后,便可一路"下一步",同意许可协议,然后静待安装程序从网络上下载并安装您选择的所有组件。

 三、Linux上创建并运行您的第一个 Qt 程序

        安装完成后,让我们立刻验证一下劳动成果。

3.1 启动 Qt Creator

        如果Qt Creator 的可执行文件位于安装目录的 `Tools/QtCreator/bin/` 路径下。如果您遵循了建议,安装在主目录,那么可以在终端中通过以下命令启动它:

~/Qt/Tools/QtCreator/bin/qtcreator

        为了方便日后使用,不必每次都输入这么长的路径,我们可以像源文件中提到的那样,为它创建一个"快捷方式"(符号链接):

sudo ln -s ~/Qt/Tools/QtCreator/bin/qtcreator /usr/local/bin/qtcreator

        这样,未来您在任何终端窗口中,只需输入 `qtcreator` 即可快速启动 IDE。

        但上面的安装在opt目录下,切换su身份后,按如下进去目录运行qtcreator。

3.2 使用向导创建新项目

(1)在 Qt Creator 的欢迎界面,点击"New Project"或通过菜单"File" > "New Project"。

(2)在弹出的窗口中,选择模板:Application (Qt) > Qt Widgets Application。这是一个最经典的带窗口的桌面应用模板。

(3)为您的项目命名,例如 `testqt`,并选择一个存放位置。

(4)构建套件(Kit Selection):这一步至关重要。Qt Creator 会自动检测到我们之前安装的 `Desktop GCC` 组件,并将其配置为一个"构建套件"。"套件"是 Qt Creator 的一个核心概念,它捆绑了特定的 Qt 版本、编译器(g++)和调试器(gdb)。确保这里已经自动为您选中了刚刚安装的那个套件。

(5)后续步骤如下选择QWidget类即可,向导会自动为您生成一个主窗口类。

3.3 编译并见证奇迹

        项目创建后,您会看到 Qt Creator 的主界面。左侧是项目文件浏览器,中间是代码编辑器。在界面的左下角,您会看到一个"电脑显示器"图标,旁边有几个按钮:一个绿色实心三角(运行)、一个带虫子的绿色三角(调试)和一个锤子(构建)。

        直接点击那个绿色的"运行"三角按钮。

        Qt Creator 会在后台自动调用 `make` 和 `g++`,对生成的代码进行编译和链接。

        如果像上面的报错,就要通过如下命令安装gl库:

sudo apt-get install libgl1-mesa-dev

        如果您的环境准备和 Qt 组件选择都准确无误,稍等片刻,一个空白的、带着标准窗口边框的应用程序就会出现在您的屏幕上。

        恭喜!您已经在 Linux 上成功创建并运行了第一个 Qt 程序!

四、让程序在调试器下运行

        一个完整的开发环境,不仅要能编译代码,更要能调试代码。

(1)设置断点:比如双击 `widget.cpp` 文件,在其中的任意一行代码旁边的行号处单击鼠标左键,或者将光标移动到该行后按 `F9` 键。一个红色的圆点会出现,这就是断点。

(2)启动调试:这次,请点击那个带虫子的绿色"调试"按钮,或者直接按 `F5` 键。

(3)程序暂停:程序会开始运行,但当执行到您设置的断点时,它会立刻暂停。Qt Creator 的界面会自动切换到调试视图,高亮显示当前暂停的代码行。

(4)单步执行:您可以按 `F10` 键(Step Over)让程序向下执行一行代码。在调试视图的下方,您还可以实时查看和监控变量的值。

        当您能成功地让程序在断点处停下,并能进行单步跟踪时,这便宣告您的 Qt for Linux 开发环境已经完美搭建,编译器、Qt库、IDE和调试器之间的"任督二脉"已全部打通。

总结

        回顾我们的旅程,在 Linux 上搭建 Qt 开发环境的核心,其实就是遵循一个清晰的逻辑链条:首先,通过 `build-essential` 确保 C++ 开发的基石(编译器和构建工具)稳固;其次,通过 `libgl1-mesa-dev` 满足 Qt 图形渲染的前置依赖;最后,在 Qt 安装过程中,精准地选择与我们系统环境匹配的 `Desktop GCC` 组件。

        相较于 Windows 下的"一键式"体验,Linux 确实需要我们多一些耐心和细致。但这份付出是值得的。它不仅让我们收获了一个稳定、高效且高度定制化的原生开发环境,更让我们在无形中深化了对软件开发底层原理的理解。现在,一片广阔的跨平台开发新天地已在您面前展开,尽情用 Qt 去创造吧!

看到这里了还不给博主点一个:
⛳️ 点赞☀️收藏 ⭐️ 关注

💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖
再次感谢大家的支持!
你们的点赞就是博主更新最大的动力!

相关文章:

【AI时代速通QT】第三节:Linux环境中安装QT并做测试调试

目录 引言 一、Linux QT开发环境的核心要素 1.1 编译器(g)与构建工具(make) 1.2 搞定 OpenGL 依赖 二、核心步骤——安装 Qt Creator 2.1 获取官方在线安装器 2.2 赋予文件执行权限 2.3 运行图形化安装向导 三、Linux上创…...

论文阅读:2025 arxiv Qwen3 Technical Report

https://arxiv.org/pdf/2505.09388 https://www.doubao.com/chat/9918384373236738 文章目录 论文翻译Qwen3技术报告摘要1 引言 论文翻译 Qwen3技术报告 Qwen团队 摘要 在这项工作中,我们介绍了Qwen模型家族的最新版本Qwen3。Qwen3包含一系列大型语言模型&…...

Vue3+el-table-v2虚拟表格大数据量多选功能详细教程

Vue3el-table-v2虚拟表格大数据量多选功能详细教程 本教程基于 Element Plus 组件库的 el-table-v2(假设你使用虚拟滚动表格),实现大数据量场景下的多选功能,并包含了全选、反选、已选行展示、清除选择等完整交互。 一、项目背景与…...

开源跨平台的轻量 C# 编辑器

NetPad一个基于.NET 开源、跨平台的 C# 编辑器,目的是创建一个开源的、支持 Web 的跨平台替代方案,从而为开发者提供便利的编程环境并为非 Windows 环境下的开发者提供一个可替代 LINQPad 的实用工具。它以.NET SDK 作为基础运行时环境,利用E…...

QT多线程

使用多线程的好处 假如当前窗口要进行一段非常复杂的逻辑处理,在单线程的情况下,是无法操控界面UI的,点击界面UI没有响应。此时就要用到多线程。 注意: 1、默认的线程在Qt中称之为窗口线程,也叫主线程,负…...

了解公共部门中的数据网格:支柱、架构和示例

作者:来自 Elastic Elastic Platform Team 想想那些像公共健康记录、城市规划模型等项目背后的所有数据。政府机构一直在产生大量数据。当数据分散在云平台、本地系统或像卫星和应急响应中心这样的专业环境中时,情况变得更加复杂。找到信息变得困难&…...

关于一维数组和字符串的详细讲解(从属于GESP三级)

本章内容 一维数组基础 字符串基础 就像打磨一串符号,每个位置都要精准对待,才能串起完整的风景。坚持下去,小细节终将成就大格局。 一、⼀维数组基础 1 📚 定义 典型写法 说明 易错/拓展 int a[5]; 编译期长度常量&#x…...

【驱动设计的硬件基础】PCI和PCI-E

打开电脑主机,你会看到主板上一排长短不一的插糟:矮胖的 PCI 插糟还插着古老的声卡,旁边细长的 PCI-E 插糟则牢牢卡住显卡、高速网卡等核心设备。这些看似普通的插糟,其实是计算机硬件沟通的 "高速公路",承载…...

【学习记录】Git Base使用-免密连接代码仓库

github(JL765)和gitee(JL765/git-test01)都可以用于管理代码 在windows中,可以通过Git Base软件(Git - Downloading Package)和仓库进行连接 下载略过 github登录 ssh -T gitgithub.com # 成…...

android脱糖

前言 另外一篇相关文章:https://androidblog.blog.csdn.net/article/details/148574130 通过sourceCompatibility 和targetCompatibility可以实现低版本写代码高版本输出(详情可查看我的另一篇文件中的:验证各种Java版本 > 一、纯Java项…...

DVWA Brute Force漏洞深度分析与利用指南

DVWA简介 DVWA(Damn Vulnerable Web Application)是一个基于PHP/MySQL的脆弱性Web应用平台,专为安全专业人员设计,用于测试技能和工具。它包含十大安全模块,其中Brute Force(暴力破解)是最基础…...

Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录

目录 🔧Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录 📌 问题背景 🧪 排查过程 步骤 1:确认加速器地址是否可访问 步骤 2:检查 Docker 是否真的使用了镜像加速器 步骤 3&…...

采用ArcGIS10.8.2 进行插值图绘制

一、最终成果图展示 二、软件下载 链接: 百度网盘 请输入提取码 密码:azay 三、软件安装 1、在安装之前需要关闭电脑的防火墙及杀毒软件 设置-隐私和安全性-Windows安全中心-防火墙和网络保护 2、软件解压 (1)【ArcGIS_Desktop_1082_180......】“以管理员身份运行”…...

国产安路FPGA纯verilog视频图像去雾,基于暗通道先验算法实现,提供5套TD工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目国产安路FPGA相关方案推荐本博主已有的图像处理方案 3、设计思路框架工程设计原理框图输入Sensor之-->GC0308摄像头输入Sensor之-->OV7725摄像头输入Sensor之--…...

利用大型语言模型增强边缘云 AI 系统安全性

大家读完觉得有帮助及的关注和点赞!!! 抽象 随着边缘计算和云系统在 AI 驱动应用中的广泛应用,如何在确保数据隐私的同时保持高效性能已成为一个紧迫的安全问题。本文提出了一种基于联邦学习的数据协作方法,以提高边缘…...

微信小程序中 rpx与px的区别

在微信小程序中的rpx比px方便的多 <!--pages/welcome/welcome.wxml--> <!--rpx替换px--> <image style"width:200rpx;height: 200rpx"src"/images/avatar/3.png"></image> <text>你好&#xff0c;冻梨</text> <but…...

解锁阿里云AnalyticDB:数据仓库的革新利器

AnalyticDB&#xff1a;云数据仓库新势力 在数字化浪潮中&#xff0c;数据已成为企业的核心资产&#xff0c;而云数据仓库作为数据管理与分析的关键基础设施&#xff0c;正扮演着愈发重要的角色。阿里云 AnalyticDB 作为云数据仓库领域的佼佼者&#xff0c;以其卓越的性能、创…...

告别水印烦恼,一键解锁高清无痕图片与视频!

在这个数字化飞速发展的时代&#xff0c;无论是设计小白还是创意达人&#xff0c;都可能遇到这样的困扰&#xff1a;心仪的图片或视频因水印而大打折扣&#xff0c;创意灵感因水印而受限。别急&#xff0c;今天就为大家带来几款神器&#xff0c;让你轻松告别水印烦恼&#xff0…...

前端面试记录

前言&#xff1a;面试题永远是刷不完的&#xff0c;即使刷了一大堆下次面试又忘记了&#xff0c;重要的是组织自己的语言&#xff0c;保持自信&#xff0c;不给自己制造面不过的心理负担&#xff0c;对刷过的题要有个大致印象&#xff0c;好在答题的时候能够多多少少说出点贴近…...

RAG实战基础篇/windows电脑快速部署qwen3:14B

现阶段&#xff0c;在本地部署ollama非常简单&#xff0c;准备好一个有GPU的电脑&#xff0c;十分钟轻松部署qwen3:14b。实现本地的大模型部署。 我这里为了方便起见&#xff0c;直接使用windows电脑下载一个ollama。 访问ollama GIthub地址&#xff1a;ollama开源地址 直接…...

Java SE - 图书管理系统模拟实现

目录 1.设计框架2. 实现用户类3.实现书和书架类4.登录界面的实现5.实现menu方法6.测试菜单选择7.实现一个IFun接口7.1 查找功能的实现7.2 展示功能的实现7.3 增加功能的实现7.4 删除功能的实现7.5 退出功能的实现7.6 借阅功能的实现7.7 归还功能的实现 8.实现IFuntion类型的数组…...

华为HN8145V光猫改华为蓝色公版界面,三网通用,xgpon公版光猫

咸鱼只卖20多元一个&#xff0c;还是xgpon的万兆猫&#xff0c;性价比不错哦 除了没有2.5G网口&#xff0c;其他还行。 改成公版光猫后&#xff0c;运营商是无法纳管光猫&#xff0c;无法后台修改光猫数据及超密。 华为 HN8145V 光猫具有以下特点&#xff1a; 性能方面 高速接…...

【ARM 嵌入式 编译系列 7.5 -- GCC 打印链接脚本各段使用信息】

文章目录 Overview1 在 linker script 中定义符号2 编译并生成 ELF 文件3 使用 nm awk 输出各段地址及大小&#xff08;含单位&#xff09;4 实际输出示例5 进阶建议 Overview 在 GCC 编译生成 elf 后 打印出出数据段的开始地址及结束地址&#xff0c;bss 段的开始地址和结束…...

在大数据求职面试中如何回答分布式协调与数据挖掘问题

在大数据求职面试中如何回答分布式协调与数据挖掘问题 场景&#xff1a;小白的大数据求职面试 小白是一名初出茅庐的程序员&#xff0c;今天他来到一家知名互联网公司的面试现场&#xff0c;面试官是经验丰富的老黑。以下是他们之间的对话&#xff1a; 第一轮提问&#xff1…...

小白成长之路--nginx基础配置(一)

文章目录 一、概述1.1 Nginx 特点1.2 Nginx 作用1.3Nginx工作原理 二、Nginx服务搭建2.1安装2.2 目录结构2.3 配置文件作用2.4 nginx,conf配置文件详解2.5 核心命令2.6 Nginx信号三.Nginx3.1启动 总结 一、概述 Nginx 是开源、高性能、高可靠的 Web服务器 和反向代理服务器&am…...

基于 SpringBoot+JSP 的医疗预约与诊断系统设计与实现

摘要 本研究针对传统医疗预约与诊断流程中存在的效率低下、信息不透明、患者等待时间长等问题&#xff0c;设计并实现了一个基于 SpringBootJSP 的医疗预约与诊断系统。系统采用 B/S 架构&#xff0c;整合了用户管理、科室管理、医生排班、预约挂号、在线问诊、检查检验、诊断…...

C++语言发展历程-2025

C语言发展历程-2025 前言 C是一种高级编程语言&#xff0c;由Bjarne Stroustrup于1979年在贝尔实验室创建&#xff0c;是C语言的扩展和改进版。 C从最初的C with class&#xff0c;经历了C98、C03、C11、C 14、C17、C20、C23多次标准化改造&#xff0c;成为一门多范式、高性…...

Zynq + FreeRTOS + YAFFS2 + SQLite3 集成指南

Zynq FreeRTOS YAFFS2 SQLite3 集成指南 一、系统架构设计 #mermaid-svg-qvuP6slyza89wsiT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qvuP6slyza89wsiT .error-icon{fill:#552222;}#mermaid-svg-qvuP6slyz…...

Python基础之函数

代码仓库地址&#xff1a;gitgithub.com:Liucc-123/python_learn.git 函数介绍 函数是组织好的、可重复使用的&#xff0c;用来实现单一、或相关功能的代码段。 函数可以提高应用的模块性和代码的可重复性。python 有许多内置的函数比如 print 打印函数&#xff0c;python 也…...

Python异步爬虫编程技巧:从入门到高级实战指南

Python异步爬虫编程技巧&#xff1a;从入门到高级实战指南 &#x1f680; &#x1f4da; 目录 前言&#xff1a;为什么要学异步爬虫异步编程基础概念异步爬虫核心技术栈入门实战&#xff1a;第一个异步爬虫进阶技巧&#xff1a;并发控制与资源管理高级实战&#xff1a;分布式…...

Redis哨兵模式深度解析与实战部署

Redis哨兵模式深度解析与实战部署 文章目录 Redis哨兵模式深度解析与实战部署一、Redis哨兵模式理论架构详解1.1 哨兵模式的核心架构组成基础架构拓扑图 1.2 哨兵节点的核心功能模块1.2.1 监控模块&#xff08;Monitoring&#xff09;1.2.2 决策模块&#xff08;Decision Makin…...

【软考高级系统架构论文】论边缘计算及其应用

论文真题 边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台(架构),就近提供边缘智能服务。边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在长周期维护、业务决策支撑等领域发挥优势;…...

触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报

触摸屏&#xff08;典型 I2C Input 子系统设备&#xff09;从设备树解析到触摸事件上报 以下是架构图&#xff0c;对触摸屏&#xff08;典型I2C Input子系统设备&#xff09;从设备树解析到触摸事件上报的全流程详细拆解&#xff0c;包含文字讲解和配套流程图&#xff1a; 注…...

Java中==与equals()方法的深度解析

作为Java后端开发者&#xff0c;我们经常会遇到需要比较两个对象是否相等的情况。在Java中&#xff0c;运算符和equals()方法都可以用于比较&#xff0c;但它们之间存在着本质的区别。 1. 运算符 是一个比较运算符&#xff0c;它的行为取决于比较的类型&#xff1a; 1.1 比较…...

qt常用控件--02

文章目录 qt常用控件--02toolTip属性focusPolicy属性styleSheet属性补充知识点按钮类控件QPushButton 结语 很高兴和大家见面&#xff0c;给生活加点impetus&#xff01;&#xff01;开启今天的编程之路&#xff01;&#xff01; 今天我们进一步c11中常见的新增表达 作者&…...

AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)

环境&#xff1a; AI-Sphere-Butler VBCABLE2.1.58 Win10专业版 豆包桌面版1.47.4 ubuntu22.04 英伟达4070ti 12G python3.10 问题描述&#xff1a; AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法&#xff08;一&#xff09; 聊天视频&#xff1a; AI真…...

为什么android要使用Binder机制

1.linux中大多数标准 IPC 场景&#xff08;如管道、消息队列、ioctl 等&#xff09;的进程间通信机制 ------------------ ------------------ ------------------ | 用户进程 A | | 内核空间 | | 用户进程 B | | (User Spa…...

Apache SeaTunnel Flink引擎执行流程源码分析

目录 1. 任务启动入口 2. 任务执行命令类:FlinkTaskExecuteCommand 3. FlinkExecution的创建与初始化 3.1 核心组件初始化 3.2 关键对象说明 4. 任务执行:FlinkExecution.execute() 5. Source处理流程 5.1 插件初始化 5.2 数据流生成 6. Transform处理流程 6.1 插…...

XML读取和设置例子

在Qt C中&#xff0c;可以使用Qt的 QDomDocument类来读取、更新和保存XML文件。这个类提供了对XML文档的强大操作能力&#xff0c;支持通过DOM&#xff08;文档对象模型&#xff09;对XML进行读取、修改、添加和删除节点等操作。 下面是一个详细的例子&#xff0c;演示如何在Qt…...

数据标注师学习内容

目录 文本标注词性标注实体标注 图像标注语音标注 文本标注 词性标注 第一篇 第二篇 实体标注 点击这里 关系标注 事件标注 意图标注 关键词标注 分类标注 问答标注 对话标注 图像标注 拉框标注 关键点标注 2D标注 3D标注 线标注 目标跟踪标注 OCR标注 图像分类标注 语音…...

如何实现财务自由

如果有人告诉你&#xff0c;普通人也可以在5到10年内&#xff0c;而不是40到50年后实现财务自由、彻底退休&#xff0c;你会不会觉得对方在开玩笑&#xff1f;但这并非天方夜谭&#xff0c;《百万富翁快车道》的作者MJ德马科就是成功案例。他曾和多数人一样做底层工作&#xff…...

一些想法。。。

1.for里面的局部变量这种还是在for里面定义比较好 比如 for(int i 0;i<n;i){ int num; cin>>num; } 实不相瞒&#xff0c;有一次直接cin了i怎么都没看出来哪里错了。。。 2.关于long long 如果发现中间结果大约是10^9&#xff0c;就要考虑int 溢出 即用 long …...

基于分布式部分可观测马尔可夫决策过程与联邦强化学习的低空经济智能协同决策框架

基于分布式部分可观测马尔可夫决策过程与联邦强化学习的低空经济智能协同决策框架 摘要: 低空经济作为新兴战略产业,其核心场景(如无人机物流、城市空中交通、低空监测)普遍面临环境动态性强、个体观测受限、数据隐私敏感及多智能体协同复杂等挑战。本文创新性地提出一种深…...

github常用插件

一&#xff0c;文档辅助阅读系列&#xff1a;自动化wiki处理 1&#xff0c;deepwiki https://deepwiki.com/ 将我们看不懂的官方code文档转换为wiki&#xff0c;更加便于理解。 其实能够翻阅的仓库很有限&#xff0c;比如说&#xff1a; 但是有很多仓库并没有index&#xff…...

python3字典

1 字典简介 字典是一种可变容器模型&#xff0c;且可存储任意类型对象。字典每个基本元素都包括两个部分&#xff1a; 键&#xff08;key&#xff09;和键对应的值&#xff08;value&#xff09; 每个键值 key>value 对用冒号: 分割&#xff0c;每个对之间用逗号(,)分割&am…...

华为云 Flexus+DeepSeek 征文|增值税发票智能提取小工具:基于大模型的自动化信息解析实践

华为云 FlexusDeepSeek 征文&#xff5c;增值税发票智能提取小工具&#xff1a;基于大模型的自动化信息解析实践 前言背景 企业财务处理中&#xff0c;增值税发票信息手动提取存在效率低、易出错等痛点&#xff0c;华为云 Flexus 弹性算力联合 DeepSeek 大模型&#xff0c;通过…...

[特殊字符] OpenCV opencv_world 模块作用及编译实践完整指南

&#x1f4cc; 什么是 opencv_world 模块&#xff1f; opencv_world 是 OpenCV 官方提供的一个 大型集成动态库。它将 OpenCV 所有启用的模块&#xff08;例如 core, imgproc, highgui, videoio, dnn, photo 等&#xff09;打包到一个单一的动态库文件&#xff08;如 Linux 的…...

目标检测之YOLOv5到YOLOv11——从架构设计和损失函数的变化分析

YOLO&#xff08;You Only Look Once&#xff09;系列作为实时目标检测领域的标杆性框架&#xff0c;自2016年YOLOv1问世以来&#xff0c;已历经十余年迭代。本文将聚焦YOLOv5&#xff08;2020年发布&#xff09;到YOLOv11&#xff08;2024年前后&#xff09;的核心技术演进&am…...

Java的SpringAI+Deepseek大模型实战【二】

文章目录 背景交互方式1、等待式问答2、流式问答 设置角色环绕增强1&#xff09;修改controller2&#xff09;修改配置日志级别 处理跨域 背景 上篇【Java的SpringAIDeepseek大模型实战【一】】搭建起浏览器交互的环境&#xff0c;如何进行流式问答&#xff0c;控制台打印日志…...

OpenCV——霍夫变换

霍夫变换 一、霍夫变换原理二、霍夫线检测2.1、标准霍夫变换2.2、概率霍夫变换 三、霍夫圆检测3.1、霍夫圆检测的原理3.2、霍夫梯度法 一、霍夫变换原理 霍夫变换&#xff08;Hough TRansform&#xff09;是从图像中识别几何图形的基本方法&#xff0c;由Paul Hough于1962年提…...