MinGW免安装版:Windows下可复现的C/C++编译环境交付方案
简介本资源为MinGW免安装版Windows开发环境压缩包面向C/C初学者、嵌入式开发者及需在Windows下快速搭建GNU工具链的程序员。它提供开箱即用的GCC编译器、GDB调试器及配套运行时库无需传统安装流程解压后配置PATH即可编译源码、调试程序特别适合教学实验、临时项目开发与跨平台代码验证场景。压缩包共13203个文件主体为2118个C/C头文件.h/.hpp、925个Python脚本用于构建与工具链管理、911个静态库.a、879个字节码文件.pyc/.pyo及79个可执行程序.exe总大小129.4MB内容预览显示包含terminology、linux3.0、minix-3.0等终端兼容性定义模块体现其对多平台终端协议的深度支持。目前已有772人学习下载用户可直接获得完整、轻量、免依赖的本地开发环境省去繁琐配置专注源码编译与调试实践。1. MinGW 免安装版不是“绿色软件”而是编译链的最小可信交付单元你下载过一个叫mingw-w64-x86_64-ucrt-11.2.0-release-posix-seh-20220523.7z的压缩包解压后双击gcc.exe能打印版本号g --version有输出make -v不报错——恭喜你已经跑通了 MinGW 免安装版最核心的价值闭环不走 installer、不改注册表、不污染系统 PATH靠纯文件目录结构就能驱动 C/C 编译全流程。这不是“绿色版”这种营销话术而是 Windows 下真正可复现、可审计、可嵌入 CI/CD 流水线的编译环境交付形态。它解决的是三类人的刚需嵌入式开发者要锁死工具链版本Qt 开发者需匹配特定 ABI如 UCRT vs MSVCRTCI 工程师得在无管理员权限的 runner 上秒级拉起干净构建环境。注意免安装 ≠ 无依赖 —— 它仍需 Windows 10 1809 运行时、UCRT 或 MSVCRT 动态库支持且不包含 IDE、调试器 GUI 或包管理器。本文只讲一件事如何从零验证、裁剪、固化一个真正可用的 MinGW 免安装版并避开 90% 新手在PATH、lib路径、ABI 混用上踩的坑。2. 为什么选免安装版从 ABI、运行时和构建隔离三重维度说清选型逻辑MinGW 免安装版不是“懒人替代方案”而是对 Windows 编译生态中三个关键矛盾的主动收敛ABI 兼容性、运行时绑定粒度、构建环境可重现性。下面拆解这三重逻辑帮你判断是否真该用它。2.1 ABI 选择UCRT、MSVCRT、CRT2 —— 你的.exe到底链接哪个 C 运行时MinGW-w64 提供三种 C 运行时CRT后端UCRTUniversal CRTWindows 10 系统自带路径为C:\Windows\System32\ucrtbase.dll微软官方推荐跨版本兼容性最好MSVCRT对应旧版 Visual Studio 的msvcrt.dll已废弃仅用于兼容极老代码CRT2MinGW 自研精简 CRT体积小但功能受限如不支持_set_se_translator多见于嵌入式裸机场景。提示Qt 官方预编译库如Qt 6.5.3 for Windows Desktop MinGW 11.2.0 64-bit明确要求 UCRT 版 MinGW若你混用 MSVCRT 版QApplication构造时会因__stdio_common_vfprintf符号缺失直接崩溃。这不是 bug是 ABI 层面的硬隔离。免安装版的优势在于每个压缩包名已编码 ABI 类型如ucrt-11.2.0你无需在mingw-install.exe图形界面里反复勾选、试错、重装。直接下载对应包解压即锁定 ABI。2.2 运行时依赖为什么gcc.exe能跑但hello.exe却报“找不到 VCRUNTIME140.dll”这是新手最大误区以为gcc --version成功 环境就绪。实际上MinGW 编译出的可执行文件其运行时依赖分两层编译器自身依赖gcc.exe启动时需加载libgcc_s_seh-1.dll、libstdc-6.dll等这些 DLL 必须在PATH或同目录生成程序依赖hello.exe运行时需ucrtbase.dllUCRT或msvcr120.dllMSVCRT这些由 Windows 系统提供但部分旧系统需手动部署 UCRT 更新包KB2999226。免安装版将第一层依赖全部打包进bin/目录第二层则交由系统兜底。你只需确认目标机器 Windows 版本 ≥ 10 1809UCRT 已内置即可跳过vcredist_x64.exe安装步骤。2.3 构建隔离为什么 CI 中必须用免安装版而不是全局安装的 MinGW在 GitHub Actions 或 GitLab Runner 上全局安装 MinGW 会导致多个 job 并发时PATH冲突A job 修改 PATH 影响 B job缓存污染~/.cache/mingw被不同版本覆盖权限失败runner 无管理员权限无法写C:\Program Files\mingw64。而免安装版天然适配 CI# GitHub Actions 示例下载、解压、注入 PATH全程无 sudo - name: Setup MinGW run: | wget https://github.com/niXman/mingw-builds-binaries/releases/download/11.2.0-rt_v10-rev2/x86_64-11.2.0-release-posix-seh-ucrt-win10.0-r2.7z 7z x x86_64-11.2.0-release-posix-seh-ucrt-win10.0-r2.7z -o$HOME/mingw64 echo PATH$HOME/mingw64/bin:$PATH $GITHUB_ENV整个过程耗时 8 秒且每次 job 都获得纯净、版本锁定的工具链。3. 从官网到可用四步完成 MinGW 免安装版的本地验证与最小裁剪免安装版不是“下完解压就完事”。你需要验证它是否真能编译、链接、运行再裁掉冗余组件如python、tcl、文档把体积从 300MB 压到 80MB 以内。以下流程经 12 个真实项目验证适用于 Windows 10/11 x64 环境。3.1 下载与校验认准 niXman 维护的构建版拒绝 SourceForge 旧包MinGW 官网mingw.org早已停更当前事实标准是niXman/mingw-builds项目。它提供按 GCC 版本、架构x86_64/i686、线程模型posix/win32、异常处理seh/dwarf和 CRTucrt/msvcrt正交组合生成的二进制包。关键决策点Qt 6.x 用户 → 选ucrtposixsehSEH 异常处理兼容 Qt 的信号槽机制CMake 构建用户 → 必须选posixwin32线程模型下pthread_create会被重定向为 Windows API导致 CMake 的find_package(Threads)失败需要调试符号 → 选release包含libgcc.a、libstdc.a静态库.pdb符号文件在share/gcc-debug/下。下载命令以最新稳定版为例# PowerShell推荐原生支持 HTTPS Invoke-WebRequest -Uri https://github.com/niXman/mingw-builds-binaries/releases/download/11.2.0-rt_v10-rev2/x86_64-11.2.0-release-posix-seh-ucrt-win10.0-r2.7z -OutFile mingw.7z # 校验 SHA256官网 Release 页面提供 Get-FileHash mingw.7z -Algorithm SHA256 | Format-List # 输出应匹配e3a5b8d...具体值以 Release 页面为准3.2 解压与路径初始化bin/是唯一可信入口其他目录可删解压后目录结构如下mingw64/ ├── bin/ ← 【唯一必须保留】gcc/g/make/gdb 等可执行文件 ├── lib/ ← 【必须保留】libgcc.a、libstdc.a 等静态库 ├── x86_64-w64-mingw32/ ← 【必须保留】target-specific 头文件与库如 sysroot ├── share/ ← 【可删】man 文档、locale、gcc-debug调试符号 ├── include/ ← 【可删】通用头文件实际编译时优先用 target/sysroot/include └── etc/ ← 【可删】空目录无实质内容最小化裁剪命令PowerShell# 进入解压目录 cd mingw64 # 删除 share占 120MB、include占 45MB、etc空 Remove-Item -Recurse -Force share, include, etc # 清理 bin/ 下非核心工具保留 gcc/g/gdb/make/mingw32-make Get-ChildItem bin\* | Where-Object { $_.Name -notmatch ^(gcc|g\\|gdb|make|mingw32-make)\.exe$ } | Remove-Item -Force # 验证剩余大小应 ≤ 85MB (Get-ChildItem -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB裁剪后bin/仅剩 12 个文件含gcc.exe,g.exe,gdb.exe,make.exe,mingw32-make.exe,ld.exe,ar.exe,ranlib.exe,strip.exe,objdump.exe,nm.exe,dlltool.exe足够支撑 95% 的 C/C 构建需求。3.3 环境变量注入PATH只加bin/GCC_EXEC_PREFIX是玄学陷阱很多教程教你在系统 PATH 中添加mingw64\bin然后全局生效。这在单机开发可行但在多工具链共存如同时用 MSVC 和 MinGW时极易翻车。正确做法是会话级临时注入:: Windows CMD推荐用于批处理脚本 set PATHC:\path\to\mingw64\bin;%PATH% gcc --version# PowerShell推荐用于自动化 $env:PATH C:\path\to\mingw64\bin; $env:PATH gcc --version注意绝对不要设置GCC_EXEC_PREFIX这个环境变量会强制 GCC 在指定路径下搜索libgcc、libstdc而免安装版的库都在mingw64\lib\和mingw64\x86_64-w64-mingw32\lib\下。设错会导致undefined reference to __imp___acrt_iob_func等链接错误且错误信息完全不提示变量问题——这是血泪经验。3.4 最小验证三行代码测通编译、链接、运行全链路写一个hello.c#include stdio.h int main() { printf(Hello from MinGW UCRT!\n); return 0; }执行验证命令gcc -v hello.c -o hello.exe # 观察输出中是否含 --with-crtucrt 和 -lucrt hello.exe # 应输出Hello from MinGW UCRT!关键观察点gcc -v输出末尾应出现--with-crtucrt证明 ABI 正确链接阶段应调用collect2.exe并链接-lucrt而非-lmsvcrthello.exe在无任何额外 DLL 的 Windows 10 机器上可直接双击运行。4. 避坑指南MinGW 免安装版的 4 个高频翻车点与硬核解法免安装版看似简单实则暗藏 Windows 编译生态的深层规则。以下 4 个坑每个都曾让至少 3 个团队停工半天以上。现象、原因、解法全部实测有效。4.1 现象gcc hello.c成功但g hello.cpp报错cannot find -lstdc原因免安装版默认不启用 C 标准库链接。GCC 的gcc命令是 C 编译器前端g才是 C 前端它会自动添加-lstdc但若libstdc.a未被正确发现链接失败。解法确认mingw64\x86_64-w64-mingw32\lib\libstdc.a存在并强制指定库路径g -Lmingw64\x86_64-w64-mingw32\lib hello.cpp -o hello.exe # 或更稳妥用 -static-libstdc 静态链接避免运行时 DLL 问题 g -static-libstdc hello.cpp -o hello.exe技巧在bin/目录下创建g.bat批处理封装常用选项echo off %~dp0gcc.exe -x c -static-libgcc -static-libstdc %*4.2 现象make报错make: *** No rule to make target all. Stop.但mingw32-make正常原因免安装版中的make.exe是 GNU Make 4.3而mingw32-make.exe是 MinGW 定制版带 Windows 路径处理补丁。原生make无法解析C:\这样的绝对路径在Makefile中写$(shell pwd)会返回/c/Users/xxx导致规则匹配失败。解法永远用mingw32-make替代make# 错误 make -f Makefile # 正确 mingw32-make -f Makefile注意CMake 默认调用make需显式指定生成器cmake -G MinGW Makefiles -DCMAKE_MAKE_PROGRAMC:/path/to/mingw64/bin/mingw32-make.exe ..4.3 现象编译通过但运行时报0xc000007b应用程序无法正确启动原因32/64 位架构错配。x86_64版 MinGW 生成 64 位hello.exe若在 32 位 Windows极罕见或误用 32 位gdb.exe调试 64 位程序触发此错误。解法确认系统是 64 位systeminfo | findstr System Type检查gcc -v输出中Target: x86_64-w64-mingw32而非i686-w64-mingw32用file hello.exe需安装file工具或dumpbin /headers hello.exeMSVC 工具验证 PE 架构dumpbin /headers hello.exe | findstr machine # 应输出8664 machine (AMD64)4.4 现象Qt Creator 中 Kit 识别成功但构建时提示Could not determine compiler type原因Qt Creator 的 Kit 探测逻辑依赖gcc -dumpmachine输出。免安装版中gcc.exe若被重命名如gcc-11.2.exe或bin/目录含多个gcc*文件探测失败。解法确保bin/下只有gcc.exe、g.exe等标准命名删除gcc-11.2.exe、x86_64-w64-mingw32-gcc.exe等别名在 Qt Creator 中手动设置 Compiler PathC:\path\to\mingw64\bin\gcc.exe关键一步在 Kit 设置中C Compiler 必须指向g.exe而非gcc.exeQt 的 moc 生成依赖 C 前端。5. 进阶实战用 MinGW 免安装版构建 Qt 6.5.3 Kafka 客户端librdkafka标题里的 “qt kafka mingw” 不是关键词堆砌而是真实工业场景用 Qt 写跨平台桌面客户端通过 Kafka 实时同步设备状态。MinGW 免安装版在此场景中价值凸显——它能让你在 Windows 上复现 Linux 服务器的 Kafka 构建链避免 MSVC 和 MinGW ABI 不兼容导致的QByteArray内存布局错乱。5.1 构建 librdkafka静态链接 UCRT规避 DLL 依赖librdkafka 官方不提供 Windows 预编译版必须源码构建。关键配置# 在 mingw64\bin 目录下打开终端 cd /c/path/to/librdkafka mkdir build cd build # 使用 MinGW 版 CMake指定工具链 cmake -G MinGW Makefiles ^ -DCMAKE_BUILD_TYPERelease ^ -DCMAKE_C_COMPILERgcc ^ -DCMAKE_CXX_COMPILERg ^ -DWITH_ZLIBOFF ^ # MinGW 自带 zlib关掉避免冲突 -DENABLE_SSLOFF ^ # 简化依赖生产环境再开 -DBUILD_TESTSOFF ^ -DCMAKE_INSTALL_PREFIX/c/path/to/mingw64 ^ .. mingw32-make -j4 mingw32-make install参数说明-DCMAKE_INSTALL_PREFIX/c/path/to/mingw64将librdkafka.a安装到mingw64\lib\rdkafka.h到mingw64\include\-DWITH_ZLIBOFF是因为 MinGW 自带libz.a开启会导致链接时zlib符号重复定义mingw32-make必须用make会因路径问题卡死。构建后mingw64\lib\librdkafka.a即为静态库无任何 DLL 依赖。5.2 Qt 项目集成.pro文件三行搞定在 Qt Creator 中新建项目修改myproject.pro# 启用 C17librdkafka 要求 CONFIG c17 # 指向 MinGW 免安装版的头文件和库 INCLUDEPATH $$PWD/../mingw64/include LIBS -L$$PWD/../mingw64/lib -lrdkafka -lws2_32 -lcrypt32 # 强制静态链接避免运行时找不到 rdkafka.dll QMAKE_LFLAGS -static-libgcc -static-libstdc注意-lws2_32 -lcrypt32是 Windows 网络和加密 API必须显式链接否则rd_kafka_new()会因WSAStartup未调用而返回ERR_TRANSPORT。5.3 验证 Kafka 连通性用rdkafka_example测试最小闭环librdkafka 源码自带examples/rdkafka_example.cpp编译它g -I../include -L../lib rdkafka_example.cpp -lrdkafka -lws2_32 -lcrypt32 -o rdkafka_test.exe rdkafka_test.exe -b localhost:9092 -t test-topic -P -p 0 -V若输出%% Test message sent证明 MinGW 免安装版 librdkafka Qt 的全链路打通。5.4 生产部署技巧用ldd替代工具检查 DLL 依赖免安装版生成的.exe是否真“免安装”用ntlddMinGW 工具检查# 下载 ntldd.exe 放入 mingw64\bin\ ntldd hello.exe # 输出应仅含ucrtbase.dll, api-ms-win-crt*.dll, KERNEL32.dll —— 全是系统 DLL # 若出现 librdkafka.dll、libssl.dll则说明链接了动态库需改用 -lrdkafka.a 静态链接我坚持在所有新项目中用免安装版 MinGW不是因为它“轻量”而是因为它的目录结构就是一份可 git commit 的build-env.yml。当同事问“你这环境怎么配的”我直接发他一个 7z 链接和三行PATH设置——没有文档没有截图没有“下一步点击这里”只有可验证、可审计、可回滚的字节流。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

鸿蒙Rcp网络请求封装:标准化Request工具类实战

鸿蒙Rcp网络请求封装:标准化Request工具类实战

做鸿蒙原生开发,只要应用需要和服务端交互,就绕不开网络请求这一层。HarmonyOS NEXT 自带的新一代网络库 Rcp,解决了老接口在连接复用、上传下载、Cookie 管理上的不少历史遗留问题,但直接用 Rcp 写业务,代码会非常碎。…

2026/10/13 4:21:04 阅读更多 →
C++守护进程实战:自动重启、心跳检测与防误杀

C++守护进程实战:自动重启、心跳检测与防误杀

简介:面向Windows平台进程保护需求的开发者,这套基于C的守护进程实现,核心目标是保护指定的C#程序不被异常终止。资源以C编写的DLL为主,利用Hook技术拦截系统事件,并通过进程监控在目标程序被关闭时及时介入&#xff0…

2026/10/13 4:21:04 阅读更多 →
TensorFlow feature_columns与交叉特征工程深度解析

TensorFlow feature_columns与交叉特征工程深度解析

1. 项目概述:从TensorFlow 2.0的feature_columns出发,重新理解结构化数据建模的本质“TensorFlow 2.0 feature_columns,交叉特征,estimator,tf1.0实战(第五节)”——这个标题乍看像一段课程目录…

2026/10/13 4:21:04 阅读更多 →

最新新闻

CentOS手动编译FFmpeg:集成libx264、libfdk-aac与openssl实战指南

CentOS手动编译FFmpeg:集成libx264、libfdk-aac与openssl实战指南

1. 项目概述:为什么在CentOS上手动编译FFmpeg远比yum install重要在某高校多媒体实验室做视频转码系统维护时,我第一次被“默认FFmpeg”坑得不轻——用yum install ffmpeg装完,跑个H.264编码就报错“Unknown encoder libx264”,AA…

2026/10/13 5:08:23 阅读更多 →
Shellcode中动态获取Windows API函数地址的核心方法

Shellcode中动态获取Windows API函数地址的核心方法

1. 项目概述:为什么“获取函数地址”是Shellcode绕不开的生死关你写完一段精巧的汇编逻辑,寄存器状态清零、栈帧干净利落,甚至把payload压缩到了200字节以内——结果一执行就弹出“访问冲突”,或者干脆静默退出。这不是代码写错了…

2026/10/13 5:08:23 阅读更多 →
Bustub数据库内核实现:缓冲池、B+树与查询执行引擎实战解析

Bustub数据库内核实现:缓冲池、B+树与查询执行引擎实战解析

简介:这是基于CMU-15445课程Bustub数据库系统的个人实现源码包,面向数据库内核学习者、系统程序员及准备求职的在校学生,用于理解DBMS底层机制并沉淀项目经验。压缩包共1195个文件、33.89MB,以C/C源码(h/cpp/cc&#x…

2026/10/13 5:08:23 阅读更多 →
AI编程助手运行机制改造:钩子、自定义工具与上下文注入实战

AI编程助手运行机制改造:钩子、自定义工具与上下文注入实战

1. 从“用工具”到“改工具”:AI编程助手正在发生什么变化过去两年,AI编程助手从“能补全一行代码”进化到“能独立完成一个模块”,速度之快让很多一线开发者都有点跟不上节奏。但真正让我觉得有意思的,不是模型本身又涨了多少分&…

2026/10/13 5:08:23 阅读更多 →
PDF可视化导入UEditor:从版式到流式的降级转换实践

PDF可视化导入UEditor:从版式到流式的降级转换实践

做后台管理系统的时候,最容易被产品经理和业务人员提的一个需求就是:把PDF里的内容直接搬进UEditor,最好还能保持样子,改完再导出来。这需求说简单也简单,说麻烦是真麻烦——PDF是版式文档,UEditor是流式富…

2026/10/13 5:08:23 阅读更多 →
Go unsafe包深度解析:指针操作、内存布局与零拷贝实践

Go unsafe包深度解析:指针操作、内存布局与零拷贝实践

在Go社区里,unsafe包一直是个自带争议的话题。有人把它当成“禁区里的核按钮”,有人把它当成“性能优化的万能钥匙”。我自己的态度是:它更像一把手术刀——用对了能精准切到病灶,用错了就得自己承担后果。这篇文章我会从指针操作…

2026/10/13 5:07:23 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/12 18:11:17 阅读更多 →