news 2026/9/19 16:22:50

Qt Creator构建套件配置全攻略:双平台工具链实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qt Creator构建套件配置全攻略:双平台工具链实战指南

做 Qt 开发这些年,我在 Windows 和 Linux 两个平台之间来回折腾,遇到最多的求助就是“为什么我装了 Qt Creator,打开项目却提示 No valid kits found”,或者“代码明明没错,编译却报找不到编译器”。这些问题绕来绕去,根子基本都出在同一个地方:构建套件(Kit)没配明白。Kit 是 Qt Creator 里把编译器、调试器、CMake 和 Qt 库绑定在一起的一套配置,它就像一把钥匙,钥匙不对,门自然打不开。这篇就围绕 Windows/Linux 双平台下的 QtCreator 构建套件配置,把 GCC/G++、GDB 调试器、CMake 这些成员挨个讲透,也把我实际踩过的坑和排查思路整理出来,给正在被 Kit 折腾的朋友一份能直接照做的参考。

1. 构建套件(Kit)到底是什么

1.1 Kit 的四个核心组成

我用大白话解释一下 Kit 这个事。Qt Creator 本身不负责编译代码,它只是个“调度中心”,真正干活的是外面的工具链。一个完整的 Kit 里通常绑定四项内容:

  • 编译器(Compiler):C/C++ 编译器本体,Windows 上常见的是 MinGW 自带的 GCC/G++,或者微软的 MSVC;Linux 上就是系统里的 GCC/G++。它负责把你的源码变成目标文件。
  • 调试器(Debugger):一般就是 GDB,负责运行到断点、单步执行、查看变量值。没有它,程序只能编译不能调试。
  • CMake 与生成器(CMake and Generator):Qt6 项目的构建系统默认是 CMake,生成器在 Windows/Linux 上常见的是 Ninja,也有用 Unix Makefiles 的。CMake 根据 CMakeLists.txt 生成构建规则,Ninja 再按规则调用编译器干活。
  • Qt 版本(Qt Version):指定当前 Kit 使用哪个 Qt 库的 qmake 路径。这个决定了程序链接的是 Qt5 还是 Qt6,是 32 位还是 64 位。

这四个东西有一条完整的链路:CMake 读配置 → Ninja 组织任务 → G++/GCC 编译 → GDB 调试。Kit 就是把四个环节的路径和参数打包在一起。你下载任何一套 Qt 离线包,安装器都会把 Qt 库、编译器、调试器和 CMake 打成一包放在 Qt 目录下,目的就是保证这四者相互兼容。

1.2 为什么套件配置不对,项目跑不起来

很多新手第一次打开别人的 Qt 项目,Qt Creator 会弹一个“No suitable kits found”的提示。出现这句话的直接原因是:你的 Kit 列表里没有任何一个 Kit 与项目所需的 Qt 版本匹配,或者 Kit 里的某一个组件路径是无效的。但更常见的情况是,工具链本身装了,Qt Creator 却没自动识别到,需要手动指认一次路径。

这里有个关键概念:Qt Creator 的 Kit 列表和“编译套件”保存在全局配置里,而不是项目里。我见过有人解压了一份绿色版 Qt 到 D 盘,打开一个老项目,编译器路径全变成红色感叹号,就是因为绿色的 Qt 包没有经过安装器写入系统环境变量,Qt Creator 的自动检测找不到注册信息。你打开“工具→选项→Kits”,看到的是 Qt Creator 在启动时扫描系统得到的结果,扫描不到,就只能自己手动添加。

所以理解 Kit 的原理其实就一句话:Qt Creator 不内置编译器,它只负责管理外部工具链,Kit 就是这套工具链的“快捷方式”。只要想通了这一点,后面所有配置都围绕同一件事:把编译器、调试器、CMake 的路径告诉 Qt Creator,并且保证它们匹配。

2. Windows 平台:从下载到第一个可调试项目

2.1 工具链选型:MinGW 还是 MSVC

Windows 上做 Qt 开发,第一个分岔路口就是选 MinGW 还是 MSVC。很多人第一次装 Qt 时看到那一长串组件列表就懵了,这里我说一下两种工具链的差异和选择逻辑。

MSVC 是微软的编译器,配合 Visual Studio 使用。它的优点是和 Windows 原生 API 兼容性最好,很多 Windows 专用的第三方库(比如某些 DirectX 相关库)默认只提供 MSVC 编译的二进制版本。缺点是编译器本身需要安装 Visual Studio,或者至少安装 Build Tools,体积大、更新频繁,而且 Qt 的 MSVC 版本安装包不会自带编译器,你得单独装。

MinGW 是 GCC/G++ 在 Windows 上的移植版。最省事的点是:Qt 官方在线安装器在勾选 MinGW 组件时,会把配套的 MinGW 编译器、GDB 调试器、CMake、Ninja 一起拉下来,不需要你再单独去配环境变量。对绝大多数 Qt 桌面应用开发者来说,MinGW 完全够用,而且调试体验一点都不差。

我的建议很直接:如果只在 Qt Creator 里做开发,选 MinGW 是性价比最高的方案。安装器里你会看到类似“Qt 6.6.2 → MinGW 11.2.0 64-bit”这样的树形节点,把这个节点点开,里面通常有“Qt Debug Symbols”、“Qt Creator”、“MinGW 11.2.0 64-bit”、“CMake”、“Ninja”、“Sources”等子选项,全选即可。这样装完以后,工具链就齐了,也省掉了后面各种“缺少组件”的烦恼。

2.2 CMake 的安装与环境变量排查

Qt6 开始官方主推 CMake,虽然还保留了 qmake,但新项目基本都是 CMake 工程。在 Windows 上 CMake 的安装其实有两条路径:

  • 第一,安装 Qt 时勾选组件列表里的“CMake”,它会装进你的 Qt 目录下,例如C:\Qt\Tools\CMake_64\bin\cmake.exe
  • 第二,单独去 cmake.org 下载 Windows x64 安装包,安装时勾选“Add CMake to the system PATH for all users”(把 CMake 加入系统 PATH)。

好多人的问题就出在装了 CMake 但终端不认,热词里那句“cmake : 无法将‘cmake’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”就是这种情况。这是典型的 PATH 环境变量没配置好。你在 PowerShell 里敲cmake --version,如果系统返回“无法识别”,说明 shell 找不到 cmake.exe 的位置。

解决办法有两种。一是把 CMake 的安装目录(比如C:\Qt\Tools\CMake_64\bin)手动追加到系统环境变量 PATH 里:按 Win 键搜索“编辑系统环境变量”,打开“环境变量”窗口,在“系统变量”里找到 Path,点击编辑,新建一行,把路径粘贴进去,保存后重新打开终端。二是不依赖终端,直接在 Qt Creator 的 Kits 配置界面手动指定 CMake 路径,这样即使不配 PATH,Qt Creator 也能找到 CMake。

从实用角度说,我建议两个方法都做一次:PATH 配好,命令行独立编译、写脚本才方便;Qt Creator 里再指定一次,确保它用的就是你要用的那一份 CMake,避免系统里存在多个 CMake 版本时 Qt Creator 选错。

2.3 Qt Creator 里完成 Kit 的自动检测与手动校正

打开 Qt Creator,点“工具→选项→Kits”,你会看到左侧列表里有一个自动检测的 Kit,名字类似“Qt 6.6.2 MinGW 64-bit”。正常情况下,编译器、调试器、CMake、Qt 版本这几个字段都应该是绿色的勾。如果你的界面里出现黄色的感叹号或者红色的叉,就说明某条路径失效了。

遇到这种情况,先别慌,按顺序手动指认:

  1. 打开“编译器”页签,点“添加→GCC→C++”,在“名称”里填一个你记得住的名字,比如“MinGW 11.2.0 G++”,“编译器路径”选择C:\Qt\Tools\mingw1120_64\bin\g++.exe(具体版本号目录以你实际安装路径为准)。同理再添加一个 C 语言的编译器,选gcc.exe
  2. 打开“调试器”页签,点“添加→GDB”,路径选C:\Qt\Tools\mingw1120_64\bin\gdb.exe
  3. 打开“CMake”页签,确认或添加C:\Qt\Tools\CMake_64\bin\cmake.exe
  4. 打开“Qt Versions”页签,确认 Qt 的 qmake 路径正确,一般是C:\Qt\6.6.2\mingw_64\bin\qmake.exe
  5. 回到“Kits”页签,点“添加”,在新 Kit 里把上面几步填好的编译器、调试器、CMake、Qt 版本都选上,最后点“OK”。

这里有一个很重要的细节:编译器位数必须和 Qt 库的位数一致。如果你选了 64 位的 Qt 库,却配了一个 32 位的 MinGW g++,Qt Creator 在构建时会报“The compiler cannot produce code for the Qt version”这类错误。这类问题非常隐蔽,因为它不是路径错误,而是 ABI 不匹配。检查方法也很简单,看 Kit 里第一列的名称,如果 Qt 版本写的是“mingw_64”,那编译器一定要指向 mingw1120_64 目录下的 g++。

2.4 用 GDB 跑通一次断点调试

Kit 配置完成后,强烈建议立刻用调试器验证一次,因为很多人“编译能过、调试不行”,问题就出在 GDB 路径没配上,或者调试模式没选对。

打开任意一个 Qt 项目,在左下角“项目”模式里确认当前构建套件选的是你刚配好的 Kit,把构建配置切换成“Debug”,在某个按钮的响应函数里打一个断点,然后按 F5 开始调试。程序如果能在断点处停下来,并且在“调试器”视图能看到各个变量值,就说明 GDB 工作正常。

我遇到过新手把构建配置切到了“Release”,然后按 F5,Qt Creator 会提示“Debugger is not available”或者程序根本没有调试信息。因为 Release 模式默认不生成 -g 调试符号,GDB 啥也干不了。所以在 Windows 上做开发,习惯性先把 Debug 模式跑通,再上 Release。

有一点小技巧:Data Breakpoint(数据断点)也很多人问。在 Qt Creator 调试时,右键要监视的变量,在上下文菜单里能找到“在数据值改变时中断”或者通过“调试→工具→数据断点”添加。它的本质是 GDB 的 watchpoint,在变量地址变化时触发暂停,用来排查“某个值被谁改掉了”这类问题非常有效。在 Qt 项目里我常拿它监视一个 QByteArray 的内部缓冲区地址,看数据在哪个函数被修改。

3. Linux 平台:原生环境与 WSL 两种玩法

3.1 原生 Linux 环境下的依赖安装

如果直接在 Linux 桌面版上开发,配置过程比 Windows 简单不少,因为 GCC/GDB/CMake 都在系统软件源里。以 Ubuntu 为例,打开终端执行一条命令就能把基础工具链装齐:

sudo apt update sudo apt install build-essential cmake gdb ninja-build

build-essential包含 gcc、g++、make,是一整套编译基础工具;gdb是调试器;cmake是构建系统;ninja-build是 Ninja 生成器。安装完成之后可以用下面几个命令确认版本:

gcc --version g++ --version gdb --version cmake --version ninja --version

正常情况下这些命令都能正常输出版本号。之后安装 Qt Creator,最简单的做法是从 Qt 官方下载在线安装器,勾选对应的 Qt 库版本和 Qt Creator,编译器和 CMake 部分可以不勾,直接用系统里的 GCC 和 CMake,省掉重复安装。打开 Qt Creator 后,它通常能自动检测到系统里的 GCC、GDB 和 CMake,自动生成一个类似“Qt 6.6.2 GCC 64bit”的 Kit。

这就是原生 Linux 的省心之处:Qt Creator 的自动检测能力几乎不需要干预,因为系统里的工具链都遵循标准的 PATH 约定,编译器目录就那么几个,Qt Creator 一扫就能命中。Windows 上之所以麻烦,是因为工具链来源多、路径五花八门,自动检测时很容易扫到版本不符合的那一套。

3.2 Ubuntu 的 CMake 版本坑

别以为 Linux 就完全没有坑。最大的一个坑藏在 CMake 版本里:Ubuntu 22.04 默认软件源里的 CMake 是 3.22.1,老一点的 20.04 是 3.16.3。单纯做 Qt 桌面开发,这个版本够用,但如果你拿到的项目里用到了较新的 CMake 语法(比如cmake_minimum_required(VERSION 3.21)以上),或者引入了某些要求新版本 CMake 的第三方库,apt 源里的版本就不够了。

升级 CMake 最省事的方式是用 pip:

pip3 install --user cmake

装完后在终端执行cmake --version,如果路径还是旧的,可能需要把~/.local/bin加到 PATH。这个方案解决了我好几次“Qt Creator 里 Kit 一切正常,但 CMake 报错说版本太低”的问题。

还有一个办法是直接下载官方预编译的二进制包放到/opt下:

sudo wget https://github.com/Kitware/CMake/releases/download/v3.30.1/cmake-3.30.1-linux-x86_64.tar.gz sudo tar -zxvf cmake-3.30.1-linux-x86_64.tar.gz -C /opt sudo ln -s /opt/cmake-3.30.1-linux-x86_64/bin/cmake /usr/local/bin/cmake

把版本号换成你需要的即可,然后确认一下/usr/local/bin在 PATH 里优先级能超过/usr/bin。在 Qt Creator 里,需要到“工具→选项→Kits”里手动把 CMake 路径改成/opt/cmake-3.30.1-linux-x86_64/bin/cmake,确保它用的就是新版本。

3.3 在 WSL 里配置 Qt Creator 的 Linux Kit

再说 WSL(Windows Subsystem for Linux)。现在很多 Windows 用户不愿意装双系统,也不想开虚拟机,直接用 WSL 当 Linux 环境,这种做法做 Qt 开发和 Linux 下调试完全可行。WSL 的好处是你可以在 Windows 桌面下获得一个几乎完整的 Linux 命令行环境,编译器、调试器、CMake 都运行在真实的 Linux 内核上。

启用 WSL 时很多朋友会遇到两个高频问题。第一个是管理员 PowerShell 里执行wsl --install后,系统提示“此应用程序需要适用于 Linux 的 Windows 子系统可选组件”或者“Your version of Windows Subsystem for Linux (WSL) is too old”。这种情况多半是 WSL 组件版本太旧,直接更新即可:

# 建议管理员权限执行 wsl --install wsl --update

看到“正在下载: 适用于 Linux 的 Windows 子系统”走完,再执行wsl -l -v检查当前发行版的版本,一般显示的是 VERSION 2,如果还是 1,可以用wsl --set-version <发行版名> 2转换到 WSL2。

进入 WSL 终端后,先安装依赖:

sudo apt update sudo apt install build-essential cmake gdb ninja-build

然后在 WSL 终端里直接启动 Qt Creator 也不是不行,WSLg 能显示 GUI,但整套环境跑在虚拟机层,界面响应多少有点钝。我更推荐的做法是:在 Windows 版 Qt Creator 里创建一个 WSL 的 Kit,这样你在 Windows 侧编辑代码,编译和调试都在 WSL 里执行。

具体操作:Qt Creator 的“Kits”页签下有个“设备”选项,添加一个 WSL 设备,给它配置一个可用的 Linux 编译器,比如/usr/bin/g++,调试器指定 WSL 里的/usr/bin/gdb,CMake 也可以指定到 WSL 里的路径。Qt Creator 会自动通过 WSL 环境去调用这些工具,编译输出到 Linux 侧,F5 调试也走 GDB。这个方式和在原生 Linux 上开发体验几乎一致,还能同时用 Windows 的输入法和窗口系统,我个人非常推荐。

3.4 Windows 代码迁移到 Linux 后的三个问题

很多项目是先在 Windows 写了基础版本,再拿到 Linux 上编译运行。这个过程中有三个问题是我每次都会碰到的,甚至可以说是必栽的跟头,提前知道能省一整天的排查时间。

问题一:文件权限混乱。从 Windows 拖文件到 WSL 或 Linux 后,经常会发现组态里执行权限不对,构建脚本执行不了。如果项目文件在 Windows 侧(比如放在/mnt/c/...下),WSL 的文件系统 IO 性能本来就慢,而且权限位和 Windows 的 ACL 映射会带来奇怪行为。解决方法是别直接在/mnt/c下构建,把代码复制到 Linux 文件系统(比如~/projects)里:

cp -r /mnt/c/Users/你的用户名/projects/myapp ~/projects/ chmod -R +x ~/projects/myapp

这样权限、性能问题一次性解决。

问题二:换行符和文件时间戳。Windows 下文件默认是 CRLF 换行,Linux 工具链不会因为换行符直接报错,但 git diff 会看出一大堆“诡异”修改记录。建议在项目根目录放一个.gitattributes,声明* text=auto eol=lf,让版本库统一用 LF。关于文件时间戳,如果跨系统同步代码又希望保留变更时间,用rsync -a比 cp 靠谱,它会带上时间戳和符号链接信息。这一点在做增量编译、避免由于文件时间异常导致整个项目重新构建时很有用。

问题三:路径分隔符与大小写敏感。代码里硬编码路径时,大多数人习惯写C:\...或者D:\...,这类代码在 Linux 上必然编译不过。Qt 里推荐用QStandardPathsQDir处理路径,只要代码里用/分隔,Windows 和 Linux 都能接受。另外 Linux 文件系统区分大小写,#include "MyHeader.h"如果写成#include "myheader.h",在 Windows 上能编过,在 Linux 上就会报找不到头文件。迁移之后要先跑一次全量编译,把所有大小写问题暴露出来。

4. 双平台协同与踩坑实录

4.1 常用报错速查表

把我在实际配置和日常开发里高频出现的报错整理成了一张表,建议存下来,遇到问题直接按图索骥:

报错信息原因解决办法
No valid kits foundKit 里没有任何与项目 Qt 版本匹配的套件手动添加 Kit,确认编译器、调试器、CMake、Qt 版本路径正确
The compiler cannot produce code for the Qt version编译器架构(32/64位)与 Qt 库不匹配检查 Kit 里的编译器路径,确保指向与 Qt 库同位的 GCC 目录
cmake: command not found / 无法将“cmake”项识别为...CMake 未安装或未加入 PATH安装 CMake 并配置环境变量,或在 Kits 里手动指定 cmake 路径
Debugger not found调试器路径无效Windows 选 gdb.exe,Linux 用 apt 安装 gdb 并确认路径可执行
Your version of Windows Subsystem for Linux (WSL) is too oldWSL 组件版本过旧管理员 PowerShell 执行 wsl --update
Missing ... ninja缺少 Ninja 生成器Qt 安装器勾选 Ninja,或在 Linux 执行 apt install ninja-build
include($env{idf_path}/tools/cmake/project.cmake) 报错CMake 文件里引用了环境变量,但当前 Kit 未设置该环境变量在 Kit 或项目环境下设置对应的环境变量(常见于 ESP-IDF 等嵌入式场景),或检查 IDE 是否以正确环境启动

最后一行专门说一下,嵌入式开发(比如 ESP32 的 ESP-IDF)也大量使用 Qt Creator + CMake 这套组合,include($env{idf_path}/tools/cmake/project.cmake)这种写法要求系统里存在idf_path环境变量。如果你在 Qt Creator 里集成了嵌入式工具链,记得在“工具→选项→Kits”的“Environment”字段里把这个变量补上,否则 CMake 配置阶段会直接失败。

4.2 工程跨平台的三条经验

配置好双平台工具链只是开始,真正保证项目在两边都能顺利跑的功夫在 CMake 和代码风格里。这里分享三个我摸索了很久才固定下来的经验,对双平台维护非常关键。

第一,CMakeLists.txt 里平台分支要尽量收敛。用if(WIN32)if(UNIX)处理平台相关选项是常规操作,但常见的错误是把所有 Windows 专属路径、宏定义、源文件都堆在根目录的 CMakeLists 里,导致文件膨胀、可读性差。我习惯的做法是把平台相关逻辑拆到单独的.cmake模块文件里,根目录只留一个结构清晰的主文件。这样 Windows 和 Linux 各自维护自己的配置,改动不容易互相影响。

第二,第三方库的处理方式要尽早统一。Windows 上用 vcpkg,Linux 上用系统包管理器,两者的库名和安装路径经常对不上。建议用 CMake 的find_package()加上CMAKE_PREFIX_PATH来统一查找,而不是把第三方库的.lib.so文件直接硬编码进链接命令。比如 Qt5/6 本身就是通过find_package(Qt6 COMPONENTS Widgets)这种声明方式被发现的,第三方库也尽量用同样的方式,跨平台时只需要在各自环境里保证包路径可被找到就行。

第三,构建目录与源码目录分离是双平台协同的前提。Qt Creator 默认开启 shadow build,也就是把构建产物生成在源码目录之外的独立目录里。这个习惯一定要保持。如果关掉了,在 Windows 上构建后切到 Linux 再构建,旧的.o文件和.exe文件混在源码目录里,轻则污染项目,重则因为文件冲突导致 CMake 配置失败。保持源码目录干净,这既是强迫症,也是双平台开发的底线。

4.3 关于 Qt 版本与 Qt Creator 版本的匹配

我经常被问到“我装了新版 Qt Creator,要不要把项目升级到最新版 Qt”,或者反过来“项目还是 Qt5,能不能用最新版 Qt Creator”。这里给一个明确的原则:Qt Creator 本身通常能向后兼容旧版本 Qt,但每个 Qt Creator 版本都有一个最低的 Qt 库版本要求。

举个例子,新版本的 Qt Creator 可能需要 CMake 3.16 以上,如果系统里还是 3.10,打开项目就会在“配置”阶段直接失败。Qt Creator 开发版和 Qt 库是两个独立版本号的软件,Qt Creator 更新不代表项目必须用新版 Qt,老的 Qt5.15 项目用新版本 Qt Creator 打开通常没问题,但要注意:如果项目需要的 CMake 最低版本超过了系统环境,就需要先升级 CMake 再打开项目。

关于“qtcreator 对应 qt 版本”这个问题,真正的对应关系是 Qt 安装器里组件树中每个 Qt 大版本都有各自对应的工具链,比如 Qt 6.6.2 配套的安装器会自动选择对应版本的 MinGW。你不需要手动记住某条精确的版本对应表,只要记住一个原则:Qt 装的是什么版本,配套编译器就用安装器拉下来的同一版本目录下的编译器,不要混用其他独立安装的编译器。如果自己单独装了别的新版 GCC,可以创建额外的 Kit 来用,但别把默认 Kit 里的编译器偷偷换掉,否则很容易碰上 ABI 兼容问题。

最后,把我在两个平台来回折腾时的几个感受放在这里。Kit 配置这件事,第一次做会觉得琐碎,做多了就会发现它其实非常符合逻辑:你只是需要让 Qt Creator 看到一套“能互相配合”的工具链。Windows 上注意路径和位数,Linux 上注意版本和权限,WSL 上注意性能和安全,三大场景都能很顺地跑起来。如果你正在配置过程中卡壳,优先检查 Kit 里每一项是否对得上“64位/32位”和“Debug/Release”这两个关键词,80% 的问题都出在这两个细节上。我的建议是,每配置完一个 Kit,都先拿一个空项目跑一遍编译加调试,走通之后再做业务开发,这样后面出了问题,你就能确定不是工具链的问题,排查范围瞬间缩小一大半。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 16:21:49

Hertz RequestContext API速查手册:请求与响应处理的终极参考

Hertz RequestContext API速查手册&#xff1a;请求与响应处理的终极参考 【免费下载链接】hertz Go 微服务 HTTP 框架&#xff0c;具有高易用性、高性能、高扩展性等特点。 项目地址: https://gitcode.com/CloudWeGo/hertz Hertz 是一款高易用、高性能的 Go 微服务 HTT…

作者头像 李华
网站建设 2026/9/19 16:20:59

自适应滤波入门:从LMS到RLS的算法原理与工程实践

简介&#xff1a;这是一份面向通信与信息系统专业硕士研究生的自适应滤波课程PPT学习教案&#xff0c;适合高校教师备课、研究生自学或相关领域工程技术人员快速建立自适应滤波知识框架。课件系统讲解滤波与自适应滤波的基本概念、开环与闭环系统、平稳与非平稳信号&#xff0c…

作者头像 李华
网站建设 2026/9/19 16:20:04

BP神经网络驱动的微观自适应信号控制方法

简介&#xff1a;本资源是一份面向交通工程、智能交通系统方向本科生与初阶研究者的毕业设计论文&#xff0c;聚焦城市道路交叉口自适应信号控制的仿真建模与算法验证&#xff0c;旨在解决传统定时控制在动态车流下响应滞后、通行效率低的问题。全文基于BP神经网络实现短时交通…

作者头像 李华
网站建设 2026/9/19 16:19:43

OpenResearch深度研究工具:多Agent并行如何重塑信息检索与报告生成流程

1. OpenResearch是什么&#xff1a;从一个名字到一套完整研究流水线这两年AI圈子里关于“深度研究”类工具的讨论越来越多&#xff0c;OpenResearch就是其中一个绕不开的名字。单看这个词&#xff0c;它既代表一种开源开放的研究理念&#xff0c;也指代具体的研究辅助产品形态。…

作者头像 李华
网站建设 2026/9/19 16:18:21

UniApp无插件TTS语音播报:消息推送与后台保活完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华