CMake编译器检测失败:系统性排查与修复指南
1. 问题初探一个看似简单的CMake错误如果你在构建C项目时突然在终端里看到一长串以CMake Error at /usr/local/share/cmake-3.25/Modules/CMakeDetermineCompilerId.cmake:739开头的错误信息心里多半会“咯噔”一下。这个错误信息非常典型它指向了CMake核心模块中的一个特定行号但问题的根源往往不在CMake本身而在于你的构建环境。简单来说CMake在尝试“认识”和“鉴定”你系统上的C或C编译器时遇到了阻碍导致整个配置流程configure在初期就失败了。这个错误本身是一个“症状”而非“病因”它告诉你CMake连最基本的编译器检查都没通过后续的所有工作自然无从谈起。这个错误直接影响所有依赖CMake进行跨平台构建的项目无论是你从GitHub上clone的一个开源库还是自己正在开发的工程。错误的表现形式可能略有不同有时会伴随类似get_filename_component的参数错误或者直接提示编译器测试失败但它们的核心都是CMake无法正确确定编译器的身份和功能。对于开发者而言这就像你准备开车却发现连车钥匙都插不进去所有后续的驾驶计划都得搁置。因此解决这个问题是进行任何后续编译、链接乃至调试工作的绝对前提。2. 错误根源深度解析CMake在背后做了什么要解决问题我们必须先理解CMake在抛出这个错误时究竟卡在了哪一步。错误路径中的CMakeDetermineCompilerId.cmake这个文件是CMake工具链检测机制的核心。它的任务形象地说就是给编译器“面试”。2.1 CMake的“编译器面试”流程当你运行cmake ..或cmake -B build时CMake的第一步并不是去读你的CMakeLists.txt而是先要搞清楚它将要使用的“笔”是什么。这个过程大致分为几个阶段定位编译器CMake根据你指定的生成器如Unix Makefiles, Ninja, Visual Studio和可能的工具链文件确定C和C编译器的可执行文件路径例如/usr/bin/gcc,/usr/bin/clang。编译器特性探测这是最关键的阶段。CMake会启动这个编译器让它编译并运行一段精心设计的、非常简单的测试代码通常就是一个打印编译器版本号的程序。通过分析编译输出的二进制文件或运行结果CMake可以提取出编译器的厂商GNU, Clang, AppleClang, MSVC等、版本号、目标架构、内置宏定义等一系列“身份信息”。设置内部变量将探测到的信息填充到诸如CMAKE_C_COMPILER_ID,CMAKE_C_COMPILER_VERSION,CMAKE_C_COMPILER_FRONTEND_VARIANT等CMake内部变量中。这些变量后续会被广泛用于条件判断、寻找系统库、设置编译标志等。错误发生的CMakeDetermineCompilerId.cmake:739附近正是上述第2步——编译并运行测试代码——出现问题的环节。CMake尝试执行编译好的测试程序但这个过程失败了。2.2 常见“面试失败”原因剖析为什么这个简单的测试会失败原因可以归结为以下几类你可以对照自己的环境进行排查编译器本身不存在或路径错误这是最直接的原因。你指定的CMAKE_C_COMPILER或CMAKE_CXX_COMPILER是一个无效的路径或者该路径下的文件不是一个可执行的编译器。编译器存在但已损坏或不完整例如通过包管理器如apt, yum, brew安装的GCC或Clang可能因为安装中断或依赖缺失导致编译器无法正常启动或链接必要的运行时库。环境变量配置冲突某些环境变量会干扰编译器的执行。最典型的是LD_LIBRARY_PATHLinux或DYLD_LIBRARY_PATHmacOS如果它们指向了错误或损坏的库目录会导致编译器或它编译出的测试程序在运行时动态链接失败。权限问题在极少数情况下编译器二进制文件没有执行权限或者CMake试图在某个没有写权限的目录如/tmp下的特定子目录生成并运行测试程序也会导致失败。交叉编译环境配置不当如果你在进行交叉编译但未正确设置工具链文件-DCMAKE_TOOLCHAIN_FILE...中的CMAKE_C_COMPILER、CMAKE_CXX_COMPILER以及相关的CMAKE_SYSROOT等信息CMake会尝试用主机编译器的方式去“面试”一个目标平台的编译器必然牛头不对马嘴。CMake缓存污染之前失败的CMake运行会在CMakeCache.txt文件中留下旧的、可能是错误的编译器路径或标志。新的CMake运行会读取这些缓存值从而延续错误。实操心得遇到这个错误第一步永远不是去修改CMakeLists.txt。你的项目CMake脚本很可能是无辜的。应该立即将排查焦点转移到系统环境、编译器安装和CMake缓存上。一个快速的诊断方法是在终端里手动执行which gcc、gcc --version或clang --version看看编译器是否能被找到并正常运行。如果这一步就报错那么问题根源就非常明确了。3. 系统性排查与修复指南下面我们按照从简到繁、从表及里的顺序提供一套完整的排查和修复流程。请依次尝试通常能在前几步解决问题。3.1 第一步基础环境检查与清理这是最应该先做的往往能解决一半以上的问题。验证编译器可执行性# 检查C编译器 which gcc gcc --version # 检查C编译器 which g g --version # 如果你用的是Clang which clang clang --version which clang clang --version如果which命令找不到编译器或者--version命令报错如“找不到动态链接库”说明编译器安装有问题。你需要重新安装编译工具链。在Ubuntu/Debian上可以运行sudo apt install build-essential在macOS上确保Xcode Command Line Tools已安装xcode-select --install。彻底清理CMake构建目录 CMake缓存CMakeCache.txt和中间文件可能包含错误信息。最彻底的方法是删除整个构建目录从头开始。# 假设你的构建目录是 build rm -rf build mkdir build cd build这是非常关键的一步。我遇到过无数次因为缓存了错误的编译器路径或标志导致各种诡异错误清理后重建就一切正常。3.2 第二步显式指定编译器路径如果基础检查通过但CMake仍然报错可以尝试在生成构建系统时显式地告诉CMake使用哪个编译器。这可以绕过CMake可能存在的自动检测错误。# 在构建目录下使用绝对路径指定编译器 cmake .. -DCMAKE_C_COMPILER/usr/bin/gcc -DCMAKE_CXX_COMPILER/usr/bin/g # 或者使用 which 命令获取的路径 cmake .. -DCMAKE_C_COMPILERwhich gcc -DCMAKE_CXX_COMPILERwhich g为什么这样做有效因为-D参数定义的变量会强制覆盖CMake缓存和自动探测的结果为CMake的“编译器面试”环节提供了明确的、正确的候选人信息。3.3 第三步检查环境变量与依赖库环境变量污染是另一个常见的“隐形杀手”。检查LD_LIBRARY_PATH(Linux) /DYLD_LIBRARY_PATH(macOS)echo $LD_LIBRARY_PATH如果这个变量设置了一大堆路径可以尝试临时清空它然后运行CMake。# 在当前shell会话中临时清空 unset LD_LIBRARY_PATH # 或者启动一个干净的子shell bash # 然后在子shell中运行cmake如果清空后CMake工作正常说明问题就出在这个环境变量指向的某个库上。你需要仔细清理该变量中无效或冲突的路径。检查其他相关变量如CC,CXX环境变量。它们会直接影响CMake对编译器的选择。确保它们指向正确的编译器或者直接unset它们。echo $CC echo $CXX unset CC unset CXX3.4 第四步处理交叉编译与工具链文件如果你在为嵌入式设备如ARM架构的树莓派、ESP32或其他平台交叉编译这个错误几乎是必然出现的因为你没有正确配置工具链。核心要点交叉编译时绝对不能让CMake自动检测主机编译器。你必须提供一个完整的工具链文件.cmake。一个最简单的ARM Linux交叉编译工具链文件示例保存为arm-linux-gnueabihf.cmake# 指定目标系统 set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) # 指定交叉编译器的绝对路径 set(CMAKE_C_COMPILER /path/to/your/arm-linux-gnueabihf-gcc) set(CMAKE_CXX_COMPILER /path/to/your/arm-linux-gnueabihf-g) # 指定查找库和头文件的根目录sysroot set(CMAKE_SYSROOT /path/to/your/arm-sysroot) set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) # 只在sysroot中查找程序、库和头文件 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)使用它进行配置cmake .. -DCMAKE_TOOLCHAIN_FILE/path/to/arm-linux-gnueabihf.cmake关键点工具链文件中的CMAKE_C_COMPILER和CMAKE_CXX_COMPILER必须是完整路径并且这个编译器必须能在当前主机上运行即它是一个交叉编译器。CMake会用这个编译器去编译测试代码但由于设置了CMAKE_SYSTEM_NAME它知道这是在为另一个系统做检查行为模式会相应改变。3.5 第五步调试CMake的编译器检查过程如果以上步骤都无法解决问题我们需要更深入地查看CMake到底在哪一步失败了。CMake提供了更详细的日志输出。启用CMake调试输出cmake .. --trace-sourceCMakeDetermineCompilerId.cmake 21 | tee cmake_trace.log这个命令会追踪CMakeDetermineCompilerId.cmake文件的执行过程并将大量细节输出到日志文件。你可以搜索error、failed或739附近的上下文看具体是执行哪条命令时出错的。手动模拟CMake的测试 根据错误上下文你有时可以找到CMake试图编译的那个临时测试文件通常位于构建目录下的CMakeFiles子目录如CMakeFiles/3.25.2/CompilerIdC/或CMakeFiles/3.25.2/CompilerIdCXX/。里面会有一个CMakeCCompilerId.c或.cpp文件。尝试手动编译它# 进入那个临时目录 cd build/CMakeFiles/3.25.2/CompilerIdC # 用你认为正确的编译器手动编译 gcc CMakeCCompilerId.c -o test_program # 运行它 ./test_program如果手动编译或运行也失败那么错误信息通常会比CMake的更直接比如缺失某个共享库.so文件这能极大地缩小排查范围。4. 平台特异性问题与案例实录不同操作系统和发行版下这个错误可能有其独特的“变种”。这里记录几个我亲身踩过的坑。4.1 macOS 上的常见问题Xcode Command Line Tools 未安装或损坏 macOS 默认没有gcc/gclang是Xcode的一部分。运行clang --version如果提示你安装开发者工具那就必须安装。有时安装后需要同意许可证sudo xcodebuild -license accept。更棘手的是如果安装了多个Xcode版本xcode-select选择的路径可能不对。使用sudo xcode-select -s /Applications/Xcode.app/Contents/Developer来切换到正确的版本。Homebrew 安装的 GCC 与系统 Clang 冲突 通过brew install gcc安装了新版GCC如gcc-13但CMake默认可能还是找gcc链接到系统Clang。你需要显式指定cmake .. -DCMAKE_C_COMPILER/usr/local/bin/gcc-13 -DCMAKE_CXX_COMPILER/usr/local/bin/g-134.2 Linux 发行版上的问题部分依赖库缺失 即使gcc --version能运行编译某些程序可能还需要额外的运行时库。例如在一些极简的Docker镜像如alpine或新安装的服务器上可能缺少libc6-dev或libstdc的完整开发包。错误信息可能隐藏在CMake的日志里提示“找不到 -lc”或类似信息。解决方法是安装完整的开发工具链在基于Debian的系统上sudo apt install build-essential在基于RHEL的系统上sudo yum groupinstall Development Tools。多版本编译器并存 系统同时安装了GCC 9, GCC 11, Clang 12等。使用update-alternatives命令可以管理系统默认的编译器符号链接。确保/usr/bin/gcc指向你期望的版本。4.3 Windows 上的注意事项在Windows上这个错误通常出现在使用MinGW或Cygwin时而不是Visual Studio因为VS通过特定的生成器集成得很好。MinGW 路径与环境变量 确保MinGW的bin目录例如C:\mingw64\bin已添加到系统的PATH环境变量中并且位于其他可能包含旧版本或冲突工具的路径之前。在Git Bash或MSYS2 shell中用which gcc检查。MSYS2 的特殊性 在MSYS2中有多个“环境”MINGW64、MSYS等。你必须从正确的开始菜单快捷方式如 “MSYS2 MinGW x64”启动终端这样才能获得正确的、针对Windows原生编译的MinGW工具链环境。在MSYS2终端里gcc默认可能是针对POSIX子系统的这会导致CMake检测出错。5. 高级场景与预防措施解决了眼前的问题后如何避免未来再次踩坑以下是一些进阶建议和场景。5.1 在CI/CD流水线中稳定构建环境持续集成环境如GitHub Actions, GitLab CI是此错误的高发区因为环境是全新创建的。最佳实践明确指定编译器版本在CI脚本中不要依赖系统默认。使用包管理器命令明确安装特定版本。# GitHub Actions 示例 steps: - name: Install GCC run: sudo apt-get update sudo apt-get install -y gcc-11 g-11 - name: Configure CMake run: cmake -B build -DCMAKE_C_COMPILERgcc-11 -DCMAKE_CXX_COMPILERg-11使用官方或稳定的Docker镜像直接使用包含所需编译器的Docker镜像作为构建环境如gcc:11-bullseye这能保证环境的一致性。在CMakePresets.json中锁定配置CMake 3.19 支持预设文件你可以将编译器路径、生成器、缓存变量等写入CMakePresets.json并提交到代码库。团队成员和CI系统只需运行cmake --presetlinux-gcc-release即可获得完全一致的配置从根本上杜绝了环境差异。5.2 处理大型项目中的复杂工具链对于需要链接特殊SDK如CUDA、Android NDK、Vulkan的项目建议使用CMake工具链文件来封装所有复杂的设置而不是在命令行传递一堆-D参数。一个封装了CUDA编译器的简化示例# cuda_toolchain.cmake # 首先找到CUDA Toolkit find_package(CUDA REQUIRED) # 将CUDA编译器路径设置为C/C编译器这是一种常见做法实际可能更复杂 set(CMAKE_C_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/gcc) # 假设NVCC后端使用宿主GCC set(CMAKE_CXX_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/g) # ... 其他CUDA相关的特定设置这样用户只需cmake -DCMAKE_TOOLCHAIN_FILEcuda_toolchain.cmake ..所有底层细节都被隐藏。5.3 编写健壮的CMakeLists.txt虽然此错误通常与环境有关但你的项目CMake脚本也可以增加一些健壮性检查。# 在 project() 命令之前进行检查 if(NOT CMAKE_C_COMPILER) message(FATAL_ERROR C compiler was not found. Please ensure a C compiler is installed and in your PATH.) endif() if(NOT CMAKE_C_COMPILER_ID) message(FATAL_ERROR CMake failed to determine the C compiler ID. This often indicates a broken compiler installation or environment issue.) endif() # 检查编译器版本是否满足要求 if(CMAKE_C_COMPILER_ID STREQUAL GNU) if(CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0) message(WARNING GCC version ${CMAKE_C_COMPILER_VERSION} is quite old. Consider upgrading to 7.0 or later.) endif() endif()这些检查不能防止CMakeDetermineCompilerId.cmake出错但能在配置过程的更早阶段以更清晰的错误信息提示用户避免看到底层模块的晦涩错误。归根结底CMakeDetermineCompilerId.cmake:739这个错误是一个强烈的信号它标志着你的构建环境的基础设施——编译器——出现了CMake无法处理的异常。解决它的过程本质上是一次对开发环境健康状况的深度体检。按照从清理缓存、验证编译器、检查环境变量到深入调试的步骤系统排查绝大多数情况下都能快速定位问题。将这个问题的解决思路固化下来未来无论面对何种CMake配置错误你都能更有章法地应对而不是在搜索引擎的结果中盲目尝试。

相关新闻

智能体分层记忆架构设计:从原理到工程实践

智能体分层记忆架构设计:从原理到工程实践

1. 项目概述:从“金鱼脑”到“智慧脑”的进化最近在设计和优化几个智能体项目时,我反复被一个问题困扰:我的Agent怎么像个“金鱼”,对话超过七句就开始前言不搭后语,或者像个“老古董”,把八百年前的陈芝麻…

2026/8/13 5:24:37 阅读更多 →
微信支付发货信息管理功能解析:为何无法关闭及正确应对策略

微信支付发货信息管理功能解析:为何无法关闭及正确应对策略

1. 问题缘起:一个被“发货信息管理”困扰的真实商户案例最近在帮一个做小程序电商的朋友处理后台问题时,遇到了一个挺典型的麻烦。他的小程序主要卖一些文创产品,订单量不大但很稳定,一直用微信支付收款。某天他突然发现&#xff…

2026/8/13 5:24:37 阅读更多 →
SpringBoot健身房管理系统实战:从JPA、JWT到并发控制与部署优化

SpringBoot健身房管理系统实战:从JPA、JWT到并发控制与部署优化

1. 项目缘起:为什么需要一个健身房管理系统?如果你在健身房工作过,或者自己就是健身房的经营者,你肯定对前台那本厚厚的会员登记本、教练手写的排课表、以及月底财务对账时的一团乱麻深有体会。几年前,我接手了一个朋友…

2026/8/13 5:24:37 阅读更多 →

最新新闻

OpenSpec+TDD:为AI代码生成构建确定性工程实践

OpenSpec+TDD:为AI代码生成构建确定性工程实践

1. 从“AI写代码”的狂欢到回归工程本质最近两年,AI代码生成工具的风潮席卷了整个开发社区。从GitHub Copilot到各种大模型驱动的IDE插件,开发者们仿佛一夜之间拥有了一个“超级实习生”,只需一个注释或半句描述,就能自动补全整段…

2026/8/13 6:21:56 阅读更多 →
PLC从入门到精通03-NPN 和 PNP 一接就烧传感器?源型漏型一次讲清,从此接线不返工

PLC从入门到精通03-NPN 和 PNP 一接就烧传感器?源型漏型一次讲清,从此接线不返工

NPN/PNP 接错烧传感器、漏型/源型搞混模块坏、24V 接反 PLC 跳闸——这些是 PLC 现场调试 3 大经典事故。调研显示超 80% 的现场故障源于接线/信号类型/基础逻辑误判——接线错误排第一。 这篇文章我会用 3 张电路原理图 3 个现场事故案例 1 张万能口诀表,把 NPN…

2026/8/13 6:21:56 阅读更多 →
STM32 RS-485工业通讯实战:从硬件电路到Modbus协议解析

STM32 RS-485工业通讯实战:从硬件电路到Modbus协议解析

1. 项目概述:为什么是STM32与485? 在工业控制、楼宇自动化、智能仪表这些领域里,你经常会看到一些设备分散在几十米甚至上百米开外,它们需要稳定、可靠地交换数据。这时候,常见的TTL电平串口(比如STM32的US…

2026/8/13 6:21:56 阅读更多 →
高中物理靠Python模拟,学生秒懂,老师直呼真香

高中物理靠Python模拟,学生秒懂,老师直呼真香

高中的物理教学里头, 其应用能够给教学给予诸多便利, 还能增强学生学习体验。它凭借简洁易懂的语法, 丰富的库, 以及强大的数据处理能力, 进而成为辅助高中物理教学的有力工具。以下是一些有关怎样在高中物理教学里利用辅助教学的方法:一、模拟与可视化借助编程, 教师能够模拟各…

2026/8/13 6:21:56 阅读更多 →
NTP服务器搭建与运维实战:从原理到企业级部署

NTP服务器搭建与运维实战:从原理到企业级部署

1. 项目概述:为什么你的服务器时间总对不上?干了这么多年运维,最怕的不是服务宕机,而是那种“软刀子割肉”的隐形问题。服务器时间不同步,就是其中最典型的一个。你可能遇到过数据库主从复制莫名其妙中断、分布式日志时…

2026/8/13 6:21:56 阅读更多 →
Claude Code记忆系统与CLAUDE.md配置实战指南

Claude Code记忆系统与CLAUDE.md配置实战指南

1. 项目概述:Claude Code 与它的“记忆中枢”如果你在VSCode里用过GitHub Copilot或者Cursor,那你对AI辅助编程肯定不陌生。但Claude Code带来的体验,有点不一样。它不是简单地在你敲代码时蹦出几个补全建议,而是试图成为你项目里…

2026/8/13 6:20:56 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →