来源:
CMakePresets.json
.github/workflows/msvc-full-features.yml
doc/c++/COMPILING.md
build-scripts/MSVC.cmake
commit d32b9cc880a8
build-config
Windows 开发¶
Windows 有两套受维护、但依赖、shell、path 与 artifact 行为不同的 compiler 环境: MSYS2/MinGW 和原生 MSVC/vcpkg。诊断前必须先选定路径。
路径选择¶
| 路径 | 契约入口 | 优点 | 主要边界 |
|---|---|---|---|
| MSYS2/MinGW | windows-x64 或 windows-tiles-sounds-x64 preset |
Unix 风格 shell 与 Ninja | MSYS2 package/runtime DLL 集合 |
| MSVC/vcpkg | windows-x64-msvc 或 windows-tiles-sounds-x64-msvc preset |
匹配 Windows CI compiler lane | Visual Studio、vcpkg triplet 与 configuration |
| ClangCL | windows-tiles-sounds-x64-clang-cl preset |
compiler 诊断/time trace | 继承 MSVC/vcpkg 依赖模型 |
以 CMakePresets.json、.github/workflows/msvc-full-features.yml 和适用 toolchain file
为权威。旧编译 prose 只是背景,不能证明包或命令仍受支持。
共同检查表¶
- 说明 shell:PowerShell、cmd、MSYS2 MinGW64 或其他环境。
- 说明 architecture、compiler、generator、preset、configuration、SDL、tiles/sound、 localization、test 与 static/dynamic linking。
- 源码/build path 应满足工具长度限制,带空格 path 必须正确引用。
- 在同一环境执行 preset configure 与 build。
- 测试打包目录,不能只测试依靠开发环境 DLL 的可执行文件。
产物与诊断¶
不要提交 Visual Studio output、vcpkg installation、本地 CMake user preset、DLL staging、 PDB、crash dump 或 credential。诊断需要时,可把 PDB、log、package manifest 和 dump 作为 受限 CI/release artifact 上传。
跨平台边界¶
Windows path encoding、console/SDL input、DLL discovery 与 renderer recovery 不同于 Linux。WSL 构建产生 Linux binary,不能验证原生 Windows packaging。