拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何从源码编译 Magpie:VS2022 + Conan 构建完整教程

如何从源码编译 Magpie:VS2022 + Conan 构建完整教程

如何从源码编译 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)
Python3.11+用于安装 Conan 及辅助脚本
Conan2.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 构建流程设计的巧妙之处:

  1. 双击根目录的Magpie.slnx,用 Visual Studio 2022 打开
  2. 顶部选择Release / x64配置
  3. 菜单「生成 → 生成解决方案」(或按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)在构建前自动完成依赖解析:

  1. 自动发现:构建时扫描src/下每个子项目里的conanfile.txt(主项目清单见 src/Magpie/conanfile.txt,包含 fmt、spdlog、rapidjson、imgui 等 9 个依赖)
  2. 按工具链选择 profile:MSVC 构建使用 msvc.profile(静态运行时、C++17);若开启UseClangCL选项则自动切换为 clang-cl.profile
  3. 锁定依赖版本:conan install会携带 conan-locks/ 中的锁定文件,例如 conan-locks/Magpie.lock,把依赖的配方修订版固定下来
  4. 生成 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 等实验性专有后端默认全部关闭。如果你希望启用这些功能,需要:

  1. 复制 src/BuildOptions.props 为src/BuildOptions.props.user(该文件不会被 Git 跟踪)
  2. 在.user文件中打开对应开关,例如把<EnableDLSSFrameGeneration>改为true
  3. 专有 SDK 路径(如DLSSSdkDir、FSR2SdkDir、VFXSdkDir)也需要自行配置

📌BuildOptions.props文件头部明确提示:不要直接修改原文件,应通过.user文件或命令行参数覆盖,这样便于撤销。

六、发布打包与触控支持(进阶)

如果你需要像 CI 一样产出正式发布包(含版本号、SHA256 校验、build-manifest.json),可以运行打包脚本 scripts/Build-Release.ps1,它会自动定位 MSBuild、补齐 Conan/CMake 路径并执行完整重编。

若需要触控输入支持,TouchHelper.exe必须经过签名。手动签名步骤:

  1. 创建自签名证书并导出为.pfx文件
  2. 把 src/Magpie/TouchHelper.cpp 中的CERT_FINGERPRINT常量替换为证书的 SHA-1 指纹
  3. 在仓库根目录执行:
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),仅供参考

返回列表