从零编译Sunrise:Windows MSBuild与Linux xwin交叉编译完整教程

发布时间:2026/10/12 16:46:17
从零编译Sunrise:Windows MSBuild与Linux xwin交叉编译完整教程 【免费下载链接】SunriseDestiny 2 Offline Preservation Mod项目地址https://gitcode.com/gh_mirrors/sunrise16/Sunrise点击查看免费下载Sunrise 是一个让《Destiny 2》可以离线游玩的开源 Mod支持加载任意目的地、脚本化任务、飞行/穿墙等探索功能以及持久存档。本教程带你从零开始在 Windows 上用 MSBuild 构建、在 Linux 上用 xwin 交叉编译 Sunrise覆盖环境准备、完整编译命令和常见问题排查帮助新手一次性构建成功。Sunrise 是什么项目代码结构一览Sunrise 以 DLL 形式注入游戏进程运行入口是 Sunrise/src/dllmain.cpp。整体代码分为三大块模块路径职责客户端Sunrise/src/client/钩子、UIImGui、内容解析、场景注入服务端Sunrise/src/server/本地模拟的游戏服务端逻辑、活动调度中间件Sunrise/src/middleware/加密、协议编解码、BAP 帧处理 项目声明所有游戏数据均在运行时提取仓库内不包含任何游戏资源这也是它可以直接开源编译的原因。编译前准备环境与工具链清单两条路线共用的硬性要求见 CMakeLists.txt 第 1 行的最低版本声明CMake3.31cmake_minimum_required(VERSION 3.31)代码为C20目标系统x64 WindowsWindows 路线Visual Studio 2026安装Desktop development with C工作负载确认勾选v145 工具集和10.0.26100 Windows SDK安装器里要同时选中这两项Linux 路线安装以下工具Debian/Ubuntu 用apt installFedora 用dnf即可git cmake clang ninja llvm xwin⚠️ Linux 交叉编译走的是 clang-cl lld 工具链不需要安装完整的 MSVC只需要 xwin 提供的 Windows 头文件和库。Windows 一键构建MSBuild 最快配置方法第 1 步克隆仓库git clone https://gitcode.com/gh_mirrors/sunrise16/Sunrise cd Sunrise第 2 步图形界面构建最简单直接用 Visual Studio 打开 Sunrise/Sunrise.sln选择Release x64配置点击生成即可。第 3 步命令行构建适合 CI/脚本打开Developer PowerShell for VS 2026执行msbuild Sunrise.sln /m /p:ConfigurationRelease /p:Platformx64参数说明/m多核并行编译大幅缩短构建时间/p:ConfigurationRelease发布配置/p:Platformx6464 位平台Linux 三步交叉编译xwin 工具链完整指南Linux 编译的核心思路用 linux-to-win-toolchain.cmake 指定clang-cl编译器、lld-link链接器并指向 xwin 缓存的 Windows SDK从而在 Linux 上产出 Windows 可执行的 DLL。第 1 步下载 Windows 头文件xwin --sdk-version 10.0.26100 --accept-license splat --include-debug-libs --output .xwin-cache这会创建一个.xwin-cache目录内含 Windows SDK10.0.26100与 UCRT 运行时库后续构建全部从该目录取用。第 2 步CMake 配置cmake -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE$(pwd)/linux-to-win-toolchain.cmake -DCMAKE_BUILD_TYPERelease第 3 步执行构建cmake --build build构建完成后产物位于build/x64/Release/目录。构建产物说明最终得到什么文件无论哪条路线最终产物都是一个名为steam_api64.dll的共享库——CMake 中它被定义为 SHARED 目标CMakeLists.txt 第 35–39 行嵌入的 SQLite、Lua、资源脚本等一并打包其中资源清单见 Sunrise/resources/sunrise.rc。将steam_api64.dll安装到旧版本游戏客户端即可离线游玩。详细的安装与玩法说明可参考仓库 README.md 的 Building 章节README.md#L43-L85。常见问题 FAQ编译失败怎么办Q1CMake 报错版本过低Linux 发行版自带的 CMake 常为 3.2x请升级到 3.31或从 CMake 官方获取新版二进制。Q2Windows 下提示找不到 v145 工具集或 SDK 10.0.26100回安装器确认 Desktop development with C 工作负载中C CMake tools之外还需手动勾选 v145 工具集与对应 SDK 版本。Q3Linux 构建找不到.xwin-cache工具链文件写死缓存路径为仓库根目录下的.xwin-cachelinux-to-win-toolchain.cmake 第 10 行确认 xwin 命令的--output参数与之一致且在仓库根目录执行 cmake。Q4交叉编译后 DLL 在 Windows 上报缺少 VC 运行时项目使用静态运行时链接/MT见 CMakeLists.txt 第 41–43 行正常情况下无需安装 VC 运行时若用 Debug 配置则需带 Debug 的运行时。总结Windows 用户装好 VS 2026v145 SDK 10.0.26100一条msbuild命令搞定Linux 用户xwin 拉取 SDK → CMake 配置 → Ninja 构建三步完成交叉编译两条路线产出相同的steam_api64.dll功能完全一致现在你已经掌握了 Sunrise 从零编译的完整流程接下来就可以深入 Sunrise/src/client/content/ 的 Activity SDK 源码尝试为这个离线 Mod 添加属于自己的功能了 赞分享【免费下载链接】SunriseDestiny 2 Offline Preservation Mod项目地址https://gitcode.com/gh_mirrors/sunrise16/Sunrise点击查看免费下载相关推荐cargo-xwin简化Windows目标平台的交叉编译cargo xwin简化Windows目标平台的交叉编译 在软件开发领域交叉编译是一个常见的需求尤其是当项目需要在不同的操作系统或硬件平台上运行时。针对使开发工具Wasmtime 预编译与交叉编译AOT 编译 WebAssembly 程序的完整实战指南Wasmtime 预编译与交叉编译AOT 编译 WebAssembly 程序的完整实战指南 导读 本文围绕 Wasmtime 的 Ahead of Time语言运行时JIT编译编译器ok-ww 实战指南图像识别驱动的《鸣潮》后台自动化完整流程ok ww 实战指南图像识别驱动的《鸣潮》后台自动化完整流程 ok ww 是一款面向《鸣潮》的开源图像识别后台挂机工具通过目标检测加 OCR 识别游戏画面GUI 自动化计算机视觉RPA人工智能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询