Playbooks
使 MinGW 在真实 Windows 舰队上保持可预测性的指南
每个部分都像内部操作手册一样编写:简短的基本原理、有序的步骤和验证命令,以便您可以在事件期间将此页交给初级工程师。
Compiler flag hygiene
将警告视为兼容性合同的一部分。当您升级 GCC 时,请在合并之前重新启用严格警告包并修复新的诊断。
- Step 1. 捕获旧的编译器版本字符串和完整版本 gcc -v output in your ticket system.
- Step 2. Align standards mode with -std= 为您的语言基线记录的标志。
- Step 3. 运行最快的测试切片,然后每晚运行一次,因为链接时间优化可以改变性能配置文件。
链接看似可怕但结构化的失败
未定义的引用错误通常意味着库排序问题、缺少导入库或编译标志与链接运行时期望之间的不匹配。
Common problem
Linker cannot find WinMain or wWinMain 当子系统标志与您的入口点不一致时。
Step by step fix
确认您构建的是控制台还是 Windows 子系统目标,然后对齐链接器标志和您的发行版提供的正确启动对象文件。
Best practice
将链接标志集中在一个 Term13 工具链文件或 Makefile 片段中,以便本地开发人员调整不会默默地分叉行为。
Review Windows API coverageUtility workflows
当您需要来自供应商 DLL 的模块定义文件时,请针对已知良好的二进制文件运行 gendef,检查输出,然后将导出检查到源代码管理中,以便将来的差异突出显示意外的供应商更新。
Quality checklist
- •将 DLL 版本资源与生成的工件一起记录。
- •切勿在未将“TERM21”输出与“TERM16”修订版哈希配对的情况下提交“TERM21”输出。
- •在“TERM12”中自动再生以捕获无声漂移。
Threading pitfalls
将 winpthreads 链接代码与同一二进制文件中的不同线程包混合可能会在进程拆卸时出现死锁。每个可交付成果选择一种策略。
- Step 1. 审核第三方静态库以查找隐藏的 pthread 假设。
- Step 2. 将运行时助手的动态链接选择与您的发行版中的文档保持一致。
- Step 3. 在可用的情况下,对线程清理程序等效项下的关闭路径进行压力测试。
Numerics migration
当移动浮点密集型代码时,比较不同优化级别的结果。启用选择性检测来检测 TERM6 电源配置文件上的异常减速。
在内部 PDF 中使用与本网站上显示的相同的官方标记,以便团队看到一个视觉系统。
Hash verification drill
每季度进行一次此演习,以便新员工在紧急升级窗口之前了解肌肉记忆。
- Step 1. 将存档下载到没有执行权限的隔离文件夹。
- Step 2. 在本地计算 SHA-256 并与并排终端窗口中发布的摘要进行比较。
- Step 3. 仅在匹配后,将存档移至批准的工具链共享并更新您的内部版本注册表。
冷静地解释防病毒警告
安全产品优先考虑误报,而不是静默恶意软件安装。编译器存档会触发启发式方法,因为它们可以快速解压许多小型可执行文件。你的回答应该基于证据,而不是情绪化的。
Template for IT tickets
包括文件名、TERM24、检测签名 ID、业务理由以及已批准基于 TERM3 的构建的内部策略页面的链接。如果需要,可以通过隔离的沙箱运行存档。
See related FAQ entriesStill blocked?
当法律或合规团队要求书面保证时,将这些指南与“信任”页面配对。