新闻详情

新闻详情

首页 / 资讯中心 / 详情

Keil5安装教程:C51与MDK共存、芯片包离线安装与激活全攻略

发布时间:2026/10/1 7:12:27来源:尧图网络
Keil5安装教程:C51与MDK共存、芯片包离线安装与激活全攻略
做单片机开发的人应该都绕不开 Keil5 这个 IDE。不管你玩的是 STM32、C51还是恩智浦、飞思卡尔的芯片最终十有八九都要回到 Keil MDK 的界面上来。不少新手最大的门槛其实不是写代码而是“装环境”——装完启动报错、兼容不了 C51 和 STM32、芯片包找不到、烧录失败哪一步都能卡你半天。这篇就完整走一遍 Keil5 的详细安装流程把 C51 和 MDK 共存、芯片包离线安装、激活、以及几个高频坑全部拆开讲透。内容适用 Windows 系统无论是刚上手的在校生还是换电脑重装环境的工程师都可以直接照着操作。1. 装之前先把版本选对否则后面全是坑1.1 你到底需要哪个“Keil5”很多人一搜“Keil5 下载”出来的结果五花八门其实 Keil5 不是一个软件而是 Keil 公司现在归 ARM 旗下第 5 代 IDE 的统称。它下面按照编译器和支持的芯片体系分了好几个版本Keil MDK-ARM也就是常说的 MDK用于 ARM 内核芯片开发最典型的就是 STM32、GD32、NXP 的 LPC 系列。搞嵌入式这两年以及未来两三年这一款是你最常用的必须要装。Keil C51用于 8051 内核单片机开发最典型的就是 STC89C52、AT89S52 这些。国内高校的《单片机原理》课程用的基本就是它。Keil C251用于 251 内核单片机属于比较小众的场景一般接触不到。Keil C166用于 C166 系列单片机基本老项目才会用。也就是说下载之前先想清楚你的芯片是哪一家。如果你既做毕设的 STC89C52又要学 STM32F103那就需要 C51 和 MDK-ARM 两个版本都装上而且这两个版本是可以同时共存、互不干扰的。这个“共存”的玩法后面会重点讲很多人 51 和 32 都装了之后打开工程发现编译器不对或者建不了工程十有八九就是共存没处理好。1.2 版本号别追新稳定是王道以 MDK 为例网上能搜到的版本很多5.23、5.26、5.30、5.36、5.38、5.39……我个人的建议是选 5.30~5.36 之间的版本原因很现实新版本比如 5.38 之后在安装时默认不集成老牌 ARM Compiler 5AC5而是主推 AC6。但不少老工程、老教程、老库函数和部分国产芯片的启动文件仍然依赖 AC5这就导致你装完最新版之后打开老工程没办法编译又得回头再去手动补装 AC5 编译器。5.23 以下的版本又太老对新出的芯片支持不够好而且 Pack Installer 在线下载芯片包的速度和成功率在现在的网络环境下比较难受。5.30~5.36 正好是兼容性和稳定性都比较平衡的一个区间AC5 和 AC6 都有较好的支持网络上教程和踩坑方案也最全。我个人主力用的就是 MDK 5.34用了很久没出过幺蛾子。如果你有特殊原因要装最新版比如必须要支持最新的芯片型号那也 OK只是后面记得额外装 AC5 编译器。提示下载安装包时尽量去官方网站keil.arm.com或者可信的网盘渠道注意校验文件大小和哈希值。国内有些下载站的捆绑软件比较离谱容易被装上一堆全家桶这点要格外留个心眼。2. 正式安装C51 和 MDK 的完整操作流程2.1 安装前准备与目录规划安装前先把杀毒软件和 Windows Defender 的实时保护临时关掉或者至少把安装目录加入白名单。这一步不是玄学因为 Keil 的破解工具和注册机常被杀软误报安装过程中部分 DLL 文件也可能被拦截导致装完无法打开。再一个就是安装路径。Keil 默认装在C:\Keil_v5我建议你保持默认路径千万不要装在 Program Files 目录下。原因是 Keil 的 IDE 在编译时经常需要对安装目录下的文件做写入操作比如生成临时文件、缓存编译中间产物装在 Program Files 下会触发 UAC 权限问题导致编译报错“cannot open file”之类的怪问题。这个坑我当年踩过重装过一次才明白。2.2 C51 安装流程如果你只需要 MDKSTM32这一节可以直接跳过。但如果你需要 C51先装 C51 还是先装 MDK网上说法不一我自己实测过两种顺序结论是先装 C51 再装 MDK 更稳。因为后安装的 MDK 会自动识别已经存在的 C51 并建立 Toolset 关联界面里就能直接切换 51 和 ARM 工程。具体步骤双击 C51 安装包c51v960a.exe弹出安装向导。一路 Next到License Agreement页面勾选同意继续 Next。建议修改安装路径到C:\Keil_v5或默认的C:\Keil比如 C51 默认是C:\KeilMDK 是C:\Keil_v5两者最初来自不同安装包所以默认目录不一样。为了管理省心统一放到C:\Keil_v5下面也可以但注意后面 MDK 装的时候也必须用同一个父目录。填写用户信息随便填比如名字和公司邮箱写自己的常用邮箱即可。等待安装完成点击 Finish。这里补充一个细节C51 的安装包里自带的编译器是 C51 Compiler也就是C51.exe那一套后面编译 51 工程全靠它。装完之后你可以去安装目录下的C51\BIN里看到这些可执行文件如果这个目录里没有C51.exe说明你的 C51 并没有真正安装成功。2.3 MDK-ARM 安装流程接下来安装 MDK这是重头戏。我以 MDK 5.34 为例其他版本流程大同小异双击MDK534.exe弹出安装画面后一路 Next。勾选同意并继续然后到路径选择这一步。注意如果你刚才 C51 装在了C:\Keil_v5那么这里同样选择C:\Keil_v5两个版本的根目录重叠完全没有问题。MDK 和 C51 的共存逻辑就是基于同一个根目录下的不同子目录实现的它们各管各的 BIN、PACK 和 UV4不会互相覆盖。填写用户信息Next进入安装进度。安装完成后如果你安装了 DFPDevice Family Pack也就是芯片支持包会弹出来一个 Pack Installer 的窗口。但现在先不用管它直接关掉。Pack 的事后面专门说。2.4 安装完成后的第一次启动与激活装完首次打开 Keil uVision5大概率会弹出“License Management”的提示意思是这个软件目前没有激活只有 30 天评估期。评估期内其实你也能正常编译但会有一个奇怪的设定代码编译后生成的烧录文件大小限制在 32KB 以内对于 STM32F103 这种大容量芯片来说一旦工程超过 32KB 就烧不进去。所以要么尽快激活要么在破解之前尽量不要写太多复杂的代码。激活流程打开 Keil菜单栏点击File→License Management打开后可以看到一个CID字符串类似XXXXXX-XXXXXX。注意右上角的下拉框里面有两个选项ARM和C51。要分别激活各自版本。打开注册机MDK 的注册机一般对应 ARMC51 有单独的注册机把 CID 复制进去。在注册机里选择对应的 Target 类型ARM 版本选 ARMC51 版本选 C51。点击 Generate 生成激活码复制回 Keil 的LIC输入框点击 Add LIC。成功激活后License Management 界面里的授权状态会从 Unlicensed 变为 Licensed右侧会显示授权类型和有效期通常是 LIC 格式的永久授权。这里有一个很多人容易搞混的点如果你装了 C51 和 MDK 两个版本需要在 License Management 右上角分别切换 Target 到 C51 和 ARM分别激活。只激活一个另一个照样是评估版依然有 32KB 限制。我自己当初就是只激活了 ARM结果 51 工程编译大一点就直接报错百思不得其解。提示如果注册机被杀软给删了或者双击没反应去杀软隔离区恢复一下。还有 Win10/Win11 系统建议以管理员身份运行 Keil否则后续烧录和安装 Pack 时可能出现权限不足的问题。3. 芯片支持包Pack的安装这是 Keil5 的灵魂3.1 为什么你的 Keil5 打不开 STM32 工程试想一下你从师兄那里拷来一个 STM32F103 的工程双击打开编译结果 Keil 报一堆device not found或者提示找不到stm32f10x.h。这个问题的本质是Keil IDE 本身不携带任何芯片的寄存器定义和启动文件它靠芯片支持包来识别具体型号。No PackNo Device。MDK 安装完之后默认的 Pack 目录在C:\Keil_v5\ARM\PACK或者C:\Keil_v5\PACK不同版本位置稍有差异这个目录下如果没有对应芯片厂商的 Pack 文件IDE 就无法识别芯片型号。3.2 在线安装与离线安装的选择在线安装的方式是在 Keil 里点Pack Installer图标是一个绿色的小盒子。打开后左侧会列出 ARM 官方支持的全部芯片厂商比如 STMicroelectronics、NXP、GigaDevice 等。展开对应厂商勾选你需要的型号点 Install 就能自动下载。听起来很方便但实际体验并不好。因为 Pack 服务器的服务器在国外国内网络环境下下载速度慢、容易中断而且中途失败会留下损坏的 Pack 记录下次再安装时可能提示“Cannot install Pack”之类的报错。所以我的经验是除非你的网络环境极好否则优先选择离线安装。离线安装的方式去 ARM 官网或芯片厂商官网下载对应的 Pack 文件.pack后缀本质是一个压缩包。对于 STM32F1你需要下载Keil.STM32F1xx_DFP.2.x.x.pack对应 F4 就下载Keil.STM32F4xx_DFP以此类推。双击这个 .pack 文件Keil 会自动识别并导入到 Pack 目录中。如果双击没有反应也可以在 Keil 里点击File→Pack Installer→ 菜单栏的File→Import手动选择 .pack 文件。导入完成后在 Pack Installer 左侧展开 STMicroelectronics就能看到对应 F1 系列芯片的 Device 列表说明导入成功。3.3 C51 的芯片包也要单独说C51 的芯片包管理方式和 MDK 差不多但有个特殊场景国产的 STC 系列单片机STC89C52、STC12C5A60S2 等在 Keil 自带的 Pack 里并没有需要去 STC 官方网站下载 STC-ISP 软件里面自带“添加 STC 型号到 Keil”的功能。或者下载 STC 的STC_C51.Pack手动导入。有同学反映装完 STC 的支持包后创建工程时在 Device 列表里找不到 STC89C52。这时你需要在 Pack Installer 的左侧确认“STC”厂商有没有显示出来如果显示出来了但没有具体型号多半是 Pack 版本和 Keil 版本不兼容去下个新版的 STC-ISP 再试一次。3.4 Pack 版本选择的原则Pack 不是越新越好。例子ST 官方在某个版本之后把 STM32F1 的老型号比如 STM32F103C8T6的定义做了合并调整某些很老的工程用最新 Pack 反而编译报错。我的习惯是新项目用最新稳定版 Pack因为芯片原厂会修 bug。接手老工程优先保持和原工程一致的 Pack 版本。打开工程时如果 Keil 提示“Device is not supported”先别急着更新 Pack看看原工程是用哪个版本建的。如果你装了多个版本的 Pack在 Project 的 Options for Target → Device 里可以切换一般不建议同一台机子同时保留同一个芯片的多个大版本 Pack容易引起一些不可控的兼容怪问题。4. 验证安装从零创建第一个工程装完环境最好立刻验证一下能不能正常建工程、编译、烧录。下面分别给出 C51 和 STM32 的最小工程验证流程。4.1 用 C51 点亮一个 LED这个流程可以说是每一位单片机玩家最初的记忆。步骤打开 Keil菜单Project→New uVision Project选择工程保存路径注意路径中不要有中文否则一些老版本的编译器会报错。工程名比如LED_Test。在弹出的 Device 选择窗口里左侧展开STC或Atmel选中你手上的芯片型号比如STC89C52RC或AT89C52。这里如果找不到 STC就用 Atmel 的 AT89C52 代替功能基本一致只是片内存储映射略有差异对于简单 LED 测试完全没影响。弹窗询问是否复制启动代码到工程目录C51 工程一般点“否No”我们用不到的。在左侧 Project 面板的 Target 上右键 →Add New Item to Group选择 C 文件.c命名为main.c。写一段最简点灯代码#include REG52.H #include INTRINS.H sbit LED P1^0; void Delay(unsigned int i) { while (i--); } void main(void) { while (1) { LED 0; // 点亮 Delay(50000); LED 1; // 熄灭 Delay(50000); } }点编译按钮或 F7观察底部 Build Output 窗口。如果显示0 Error(s), 0 Warning(s)并且生成了.hex文件说明 C51 环境和编译器工作正常。用 STC-ISP 软件连接开发板选择对应的芯片型号和串口加载生成的 HEX 文件下载。如果下载失败常见原因是开发板没有进入下载模式STC 系列一般是冷启动下载先点下载再给板上电。4.2 用 MDK 创建 STM32F103 工程STM32 的工程创建比 C51 要麻烦一些牵扯到启动文件、链接脚本等。最省心的方法是直接使用 STM32CubeMX 生成工程然后再用 Keil 打开编译对于验证环境足够了。但为了验证 Keil 本身我这里给一个手动建工程的最简流程Project→New uVision Project命名后保存。Device 窗口里展开STMicroelectronics→STM32F1 Series→STM32F103选你手上的具体型号比如STM32F103C8。弹窗提示“Copy STM32 Startup File to Project Folder?”选“是Yes”Keil 会自动帮你添加对应的启动文件这一步比你手动找启动文件省事多了。左侧 Project 里右键 Target →Add New Item添加main.c写一个最简单的空循环#include stm32f10x.h int main(void) { while (1) { } }编译。如果编译通过说明 Keil MDK 环境、芯片包、编译器三者已经正常协同工作。这里给大家提醒一个常见报错编译时提示Error: L6218E: Undefined symbol assert_failed或者SysTick_Handler之类。这些大多是启动文件或库文件版本不匹配导致的解决方法一般是确认你在 Device 里选的型号和启动文件是否对应基本不需要自己动代码。4.3 烧录验证与 Flash Download 配置编译通过只是第一步真正能烧录跑起来才算完整。STM32 烧录前需要在Options for Target→Debug和Utilities里配置调试器/烧录器。以 ST-Link 为例在Debug选项卡右侧下拉框选择ST-Link Debugger点旁边Settings确认能读到芯片的 IDCODE正常会显示如 0x1BA01477 之类的值。如果读不到检查接线尤其是 SWDIO 和 SWCLK一定要接对。切到Utilities选项卡勾选Use Debug Driver点Settings→Flash Download。Flash Download 里勾选Reset and RunProgramming Algorithm 里选择对应 Flash 大小F103C8 选 64KBF103ZET6 选 512KB。如果这里没有对应算法说明 Pack 没装全。点击下载按钮F8如果一切正常会看到 Flash Download 进度条走完Verify OK。5. 高频问题排查速查表被问得最多的问题整理成一个速查表压在下面每个问题都附上排查方向和解决思路。问题现象常见原因解决办法安装完启动报错“uVision4 停止工作”杀毒软件拦截了部分 DLL 文件重装 Keil安装前关闭杀软实时防护必要时从隔离区恢复 DLLC51 和 MDK 装了之后互相影响打开工程出现编译器缺失两个版本安装路径不一致或安装顺序反了统一安装根目录为 C:\Keil_v5先装 C51 后装 MDKDevice 列表里找不到 STM32 型号未安装对应 DFP Pack去 ARM 官网下载 STM32F1xx_DFP 离线包导入Device 列表里找不到 STC 型号未导入 STC 官方支持包从 STC-ISP 工具内一键添加或手动导入 STC_C51.Pack编译时提示 Target 选项卡的 XTAL 变灰不可改RTE 环境锁定或器件型号未正确识别关闭 RTE 管理器在 Device 里重新选择型号手动填写外部晶振频率左侧 Project 目录不显示工程视图窗口被隐藏点击 View → Project Window或按快捷键 Alt0C51 编译超过 2KB 报错明明已经“破解”了只是激活了 ARM 版本C51 未激活打开 License Management切换 Target 为 C51用 C51 注册机单独激活烧录时出现 “Flash Download failed”下载算法选错、芯片没识别到、接线错误确认 Debug 设置、Flash Algorithm、硬件接线必要时换一个 USB 口烧录完成但程序没有运行没有勾选 Reset and Run在 Utilities → Flash Download 里勾选 Reset and RunKeil 打开工程提示 “Device is not supported”Pack 版本与工程创建时的版本不一致安装与工程匹配版本的 Pack或工程内 VDM 文件调整 DEVICE 描述Code Completion自动补全没有显示编辑器配置或文件类型不识别确保文件是 .c 后缀检查 Edit → Configuration → Editor 设置必要时关闭再打开代码提示双击 .pack 文件没反应系统缺少关联或 Keil 没运行先打开 Keil再用 Pack Installer 的 Import 功能导入有些问题看起来好像跟安装没多大关系比如“左侧目录不显示”“Target 选项卡灰显”但它们确实是在装完 Keil 后立刻就会遇到的高频状况。把这些坑提前列出来省的你去一个个搜索。6. 安装过程中容易被忽略的几个细节6.1 路径不能带中文和空格这句话老生常谈但每次带学生做项目总有几个不听话的。Keil 的编译器尤其是 AC5 和 C51 编译器对路径中的中文字符支持极差有时候编译能过但只要路径里出现中文链接或生成 HEX 时就报一堆莫名其妙的问题。空格最好也不要出现比如C:\My Projects\这种也是不推荐的因为空格在某些 Makefile 式构建和批处理脚本里会被误解析。6.2 不要用绿色版 / 精简版 Keil网上确实有那种“免安装绿色版 Keil”或者“一个压缩包解压就能用”的东西。看起来省了安装步骤实际上它往往砍掉了器件 Pack、编译器路径、环境变量等配置。出了任何问题你都不知道该从哪查起连卸载重装的机会都没有。我自己刚学的时候用过一次精简版调试一个很简单的定时器程序排查了半天才发现是编译器的优化选项和标准库问题装了官方完整版之后同样的代码一次过。从那以后我再也不碰精简版了。6.3 环境变量要不要配Keil 通常不需要手动配置环境变量它安装的时候会写自己的注册表项和路径。但如果你需要在命令行里调用armcc或者C51.exe比如写自动化编译脚本那就需要把对应的 BIN 目录手动加到系统 PATH 中。对于绝大多数使用者来说这一步可以跳过Keil 界面操作已经足够。6.4 电脑配置要求低但建议 SSDKeil 5 本身对硬件要求不高老电脑跑起来也毫无压力。不过有一个体验上的明显差异如果你的系统盘是机械硬盘第一次打开 Keil 和每次编译大型工程的时候速度会肉眼可见地慢。有条件的话把 Keil 装到固态硬盘上Pack 和工程文件也都放 SSD整个编译体验会顺滑非常多。6.5 装到一半报错回滚了怎么办安装 Keil 中断导致回滚也是常见问题之一。症状是安装到一半进度条卡住然后提示安装失败系统回滚。首先确认你安装包本身是完整的、版本匹配的其次确认有足够的磁盘空间最后关掉所有可能占用 Keil 安装目录文件的程序比如正在运行的 Keil、杀毒软件。如果还是回滚手动删除残留的Keil_v5目录和注册表里的 Keil 项重启电脑再重新安装。7. 装完环境之后这些配套工作建议一并做掉7.1 安装并配置串口助手和 ST-Link 驱动Keil 本身只负责编译和下载串口调试你得配一个串口助手比如 SSCOM、XCOM、MobaXterm 等。ST-Link 则需要安装驱动Win10/11 一般插上就能识别但有些精简版系统会缺失驱动去 ST 官网下载安装即可。这些虽然不是 Keil 安装流程的一部分但没有它们你从“能编译”到“能调试”之间还有一段距离。7.2 集成 STM32CubeMX快速生成初始化代码STM32 开发绕不开外设初始化手动写寄存器太累用标准库写也有点繁琐。现在主流的做法是先用 STM32CubeMX 生成外设初始化代码再在 Keil 里做逻辑开发。这两者并不冲突CubeMX 生成的 .ioc 文件可以一键导出 Keil 工程Keil 负责编译调试CubeMX 负责生成代码。联动模式基本上已经成了 STM32 开发的默认工作流。7.3 把 Keil 常用配置调整顺手装完环境后花几分钟把 Keil 的界面和编译选项调成顺手的状态能省下后面非常多的操作成本在Edit→Configuration→Colors Fonts里选一个不刺眼的配色方案比如 VSCode 风格。在Project→Options for Target→Output里勾选Create HEX File。这一步经常被忽略很多人编译半天发现没有 HEX 文件烧录。在Project→Options for Target→C/C里把Optimization从默认值调整成你最习惯的优化等级。注意调试阶段建议选 -O0 或 -O1优化等级太高会导致单步调试跳来跳去。打开View→Project Window和Build Output保证这两个关键窗口可见。这些其实都算不上技巧就是顺手的事但很多新手卡在“编译不出 HEX”这一关就是因为 Output 里没勾选。8. 老工程迁移与新工程的 Pack 兼容问题8.1 老工程拷到新电脑编译一堆报错怎么办这个问题出现的频率非常高我在各种技术群里几乎天天见到。从别人那里拷来一个工程双击打开Keil 提示“Device not found”然后编译报几十个错误。大多数情况是 Pack 版本不匹配。新电脑默认装了最新的 Pack而老工程创建时用的可能是几年前的 Pack两者对寄存器地址的定义不同自然编译不过。处理思路有几个第一步先看 Keil 底部输出窗口定位第一条报错信息。如果报错都指向Unknown type name something或者.h文件文件找不到基本可以锁定是 Pack 问题。第二步去 Pack Installer 的 Installed 标签页看看老工程用的芯片对应 Pack 是否已经安装。没装就离线安装对应版本。第三步如果装完对应版本的 Pack 仍然报错还有一种可能是老工程使用了特殊版本的编译器比如 AC5而你新装的 Keil 只有默认的 AC6。此时需要去 Keil 官网下载 ARM Compiler 5 的独立安装包装完之后在Project→Manage→Project Items→Folders/Extensions里把编译器路径指向 AC5 的 BIN 目录然后在 Options for Target → Target 里把编译器版本切换到 AC5。8.2 新旧 Pack 并存会不会打架有人担心保留了两个版本的 Pack 会不会冲突。正常情况不会因为 Keil 的 Pack 机制是以版本号为目录区分的每个版本独立存放。只是在 Pack Installer 里展开同一个芯片厂商的列表时同一芯片会显示多个可用版本需要手动选一下。但如果你要长期维护老工程保留旧版本 Pack 是必要的别急着删。8.3 清理旧版本 Pack 的正确姿势如果你确定不需要旧版本 Pack 了在 Pack Installer 里右键对应 Pack 选择Remove即可。不建议直接去安装目录里手动删文件夹因为 Keil 的 Pack 索引文件pack.idx、pack.pidx等会记录已安装包的信息你把文件夹删了但索引还在下次启动还会报错。通过 Pack Installer 删除能同步更新索引安全很多。9. 最后聊几句实际操作中的体会Keil5 的安装本身并不难难的是装完之后各种莫名其妙的“小毛病”。我自己经手过的机器没有一百也有八十台感受最深的一点是安装 Keil5 之前先花五分钟想清楚最终要跑什么芯片、什么工程再看看电脑上装了什么软硬件环境比直接双击安装包一路 Next 要靠谱得多。比如你电脑上已经装了某个版本的 JRE 或者 Python这些基本不会干扰 Keil。但如果你装了其他 EDA 工具比如 Altium Designer、立创 EDA它们之间也互不干涉。真正要留意的是杀毒软件拦截、系统防火墙权限、路径上的中文名这几个点。另外我第一次装 Keil5 的时候用了整整一个下午原因是我先把 MDK 装好了又去装 C51结果两个版本各自为政打开 C51 工程编译提示找不到REG52.H。当时不知道是安装顺序的问题一直以为是软件坏了后来卸载重新按“C51 先、MDK 后”的顺序装了一遍问题彻底消失。如果你现在还没开始装直接按这个顺序来能少走很多弯路。装完一旦能正常建工程、编译、烧录Keil5 这台“嵌入式开发老伙计”就算真正上手了。剩下的就是多写代码多踩坑编译器报的每一个错误都会成为你后面排查问题的素材库。这篇内容如果你正好卡在安装流程的某一步直接对着表格查对应的问题就行祝顺利点亮你的第一块板子。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Linux终端特殊符号详解:从通配符到管道重定向的完整指南 2026/10/1 7:12:21

Linux终端特殊符号详解:从通配符到管道重定向的完整指南

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

阅读更多 →
/etc/passwd提权原理与四种实战路径详解 2026/10/1 7:12:14

/etc/passwd提权原理与四种实战路径详解

1. 为什么修改/etc/passwd能提权?这不是“改个密码”那么简单很多人第一次听说“通过/etc/passwd提权”,第一反应是:“这文件不就是存用户名和密码哈希的吗?改它有啥用?现在密码都存在/etc/shadow里,普通用…

阅读更多 →
芯片选型与质量验证实战:从需求权衡到失效排查的系统方法 2026/10/1 7:12:07

芯片选型与质量验证实战:从需求权衡到失效排查的系统方法

芯片这词儿听着挺高深,但落到咱们工程师手里,说白了就两件事:第一,怎么把它用到产品里,这属于芯片应用;第二,怎么确保它在产线上、在用户手里不翻车,这属于芯片质量。这两个话题看着…

阅读更多 →
Codex本地Agent配置详解:模型、TOML与AGENTS.md优先级 2026/10/1 7:12:07

Codex本地Agent配置详解:模型、TOML与AGENTS.md优先级

在本地跑 Codex 的朋友应该都有同感:装好 CLI 只是开始,真正让它按你的想法干活,绕不开模型配置、TOML 文件和 AGENTS.md 这三件事。我最初只是想给 Codex 换一个成本更低的模型,结果顺手把本地自定义 Agent 的整套配置逻辑摸了一…

阅读更多 →
基于Python的服饰推荐系统实战:混合推荐与特征工程详解 2026/10/1 7:12:00

基于Python的服饰推荐系统实战:混合推荐与特征工程详解

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

阅读更多 →
Prompt Engineering 进阶:CoT、Few-shot、ReAct、Self-Consistency 推理范式全景与 TaoToken 统一 API 实践 2026/10/1 7:11:58

Prompt Engineering 进阶:CoT、Few-shot、ReAct、Self-Consistency 推理范式全景与 TaoToken 统一 API 实践

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

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉