如何从源码编译 Magpie:VS2022 + Conan 构建完整教程
【免费下载链接】MagpieUnofficial experimental Magpie fork with colour-only DLSS, FSR2 and NVIDIA RTX Video integrations项目地址: https://gitcode.com/gh_mirrors/magpie27/Magpie
Magpie 是一款 Windows 窗口图像处理工具,这个实验分支集成了 DLSS、FSR2、XeSS 和 NVIDIA RTX Video 等 AI 超分辨率技术。本教程带你使用 VS2022 和 Conan 从源码编译 Magpie,完整讲解依赖安装、依赖锁定机制和常见构建选项,即使你是第一次编译 C++/WinUI 项目也能顺利跑通。
一、编译前准备:安装 VS2022 与 Conan 依赖
编译 Magpie 源码需要以下 4 个工具,全部安装并加入系统环境变量(PATH)后即可开始:
| 工具 | 版本要求 | 说明 |
|---|---|---|
| Visual Studio 2022 | 最新版 | 需安装「使用 C++ 的桌面开发」+「通用 Windows 平台开发」两个工作负荷,以及 Windows SDK 26100 或更高版本 |
| CMake | 任意新版 | 也可以直接使用 VS 内置 CMake(位于Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin) |
| Python | 3.11+ | 用于安装 Conan 及辅助脚本 |
| Conan | 2.x | 执行pip install conan安装 |
安装完成后,打开终端执行以下三条命令验证是否就绪:
cmake --version python --version conan --version💡小提示:VS2022 自带的 CMake 默认不在
PATH中,如果cmake --version报错,要么手动把上述目录加入环境变量,要么单独安装 CMake。
官方中文指南见 docs/编译指南.md。
二、获取 Magpie 源码
用 Git 克隆仓库到本地任意目录(建议避免中文路径和空格):
git clone https://gitcode.com/gh_mirrors/magpie27/Magpie仓库结构中与构建直接相关的部分:
Magpie.slnx:Visual Studio 解决方案入口,所有项目都挂在它下面src/Magpie/:主程序(WinUI 界面)src/Magpie.Core/:渲染核心,包含效果绘制、DLSS/FSR/RTX Video 后端src/_ConanDeps/:Conan 依赖自动安装工程,是理解本项目的关键conan-locks/:第三方依赖的锁定文件,保证构建可复现
三、打开解决方案并生成项目
这一步非常简单,也是 Magpie 构建流程设计的巧妙之处:
- 双击根目录的
Magpie.slnx,用 Visual Studio 2022 打开 - 顶部选择Release / x64配置
- 菜单「生成 → 生成解决方案」(或按
Ctrl+Shift+B)
首次编译时间较长(Conan 首次下载并构建全部依赖),之后增量编译会快很多。
编译成功后,产物位于bin\x64\Release\目录,直接运行其中的Magpie.exe即可看到上图界面。完整运行时还需要TouchHelper.exe、Updater.exe、resources.pri和effects目录,它们都会自动输出到同一目录。
四、理解 Conan 依赖的自动集成机制
Magpie 没有要求你手动执行conan install,而是通过一个名为_ConanDeps的 Utility 项目(src/_ConanDeps/_ConanDeps.vcxproj)在构建前自动完成依赖解析:
- 自动发现:构建时扫描
src/下每个子项目里的conanfile.txt(主项目清单见 src/Magpie/conanfile.txt,包含 fmt、spdlog、rapidjson、imgui 等 9 个依赖) - 按工具链选择 profile:MSVC 构建使用 msvc.profile(静态运行时、C++17);若开启
UseClangCL选项则自动切换为 clang-cl.profile - 锁定依赖版本:
conan install会携带 conan-locks/ 中的锁定文件,例如 conan-locks/Magpie.lock,把依赖的配方修订版固定下来 - 生成 MSBuild 工程:通过
MSBuildDeps生成器输出conandeps.props,主项目自动导入头文件与库路径
⚠️注意:根据 conan-locks/README.md 的说明,锁定文件面向Release x64 + MSVC构建;日常构建不要给 Conan 追加
--update参数,否则可能破坏可复现性。锁定文件只在有意识地审查依赖升级时才需要刷新。
另外,_ConanDeps工程会自动检测编译选项(编译器类型、MSBuild 版本)的变化——一旦你从 MSVC 切到 clang-cl 或升级了 VS,它会触发依赖重新解析并注入对应的编译标志(如 Release 的/GL全程序优化)。
五、按需调整功能开关(BuildOptions.props)
主程序默认是「纯净版」构建:DLSS SR、FSR2/3、XeSS、RTX Video 等实验性专有后端默认全部关闭。如果你希望启用这些功能,需要:
- 复制 src/BuildOptions.props 为
src/BuildOptions.props.user(该文件不会被 Git 跟踪) - 在
.user文件中打开对应开关,例如把<EnableDLSSFrameGeneration>改为true - 专有 SDK 路径(如
DLSSSdkDir、FSR2SdkDir、VFXSdkDir)也需要自行配置
📌
BuildOptions.props文件头部明确提示:不要直接修改原文件,应通过.user文件或命令行参数覆盖,这样便于撤销。
六、发布打包与触控支持(进阶)
如果你需要像 CI 一样产出正式发布包(含版本号、SHA256 校验、build-manifest.json),可以运行打包脚本 scripts/Build-Release.ps1,它会自动定位 MSBuild、补齐 Conan/CMake 路径并执行完整重编。
若需要触控输入支持,TouchHelper.exe必须经过签名。手动签名步骤:
- 创建自签名证书并导出为
.pfx文件 - 把 src/Magpie/TouchHelper.cpp 中的
CERT_FINGERPRINT常量替换为证书的 SHA-1 指纹 - 在仓库根目录执行:
python scripts/publish.py --pfx-path=<pfx 路径> --pfx-password=<pfx 密码>编译产物位于publish\x64目录。
七、常见问题速查
| 问题 | 解决方法 |
|---|---|
conan命令找不到 | 重新执行pip install conan,确认 Python 的Scripts目录在PATH中 |
| 找不到 MSBuild/MSVC 工具链 | VS 安装器中确认「使用 C++ 的桌面开发」已装,且 Windows SDK ≥ 26100 |
| 首次构建极慢 | 正常现象,Conan 需要下载并编译 9 个第三方依赖,第二次构建会明显加快 |
| 切换了 VS 版本后行为异常 | 属正常机制:_ConanDeps会检测到 MSBuild 版本变化并自动重新生成依赖 |
| 想要 Debug 调试 | 配置选 Debug/x64 即可,锁定文件针对 Release,Debug 下 Conan 会按build_type=Debug重新解析 |
总结
编译 Magpie 的核心流程只有三步:装好 VS2022 + Python + Conan → 克隆仓库 → 打开Magpie.slnx生成。Conan 依赖由_ConanDeps工程全自动接管,锁定文件保证每次构建结果一致,你只需要专注在 VS 里点「生成」。如果希望深入了解架构设计,推荐阅读 docs/experimental/README.md 中的实验特性设计文档。
【免费下载链接】MagpieUnofficial experimental Magpie fork with colour-only DLSS, FSR2 and NVIDIA RTX Video integrations项目地址: https://gitcode.com/gh_mirrors/magpie27/Magpie
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考