news 2026/9/11 4:36:38

shadPS4 如何在 Windows 上用 Visual Studio 2022 与 Clang x64 编译?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
shadPS4 如何在 Windows 上用 Visual Studio 2022 与 Clang x64 编译?

shadPS4 如何在 Windows 上用 Visual Studio 2022 与 Clang x64 编译?

【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4

shadPS4 是一个用 C++ 编写的 PlayStation 4 模拟器,仓库内是模拟器核心(不含 QtLauncher 图形界面)。如果你需要在 Windows 上从源码编译它用于开发、调试或测试,官方文档给出的第一种路径就是:用 Visual Studio 2022 的图形界面,配合仓库自带的 "Clang x64" CMake 预设完成构建。下文按 documents/building-windows.md 中 "Option 1: Visual Studio 2022" 的完整流程执行:准备环境、克隆源码、构建,并确认产物位置。适用环境为 Windows x64;文档明确说明 ARM64 不受支持,目前既无法构建也无法运行。

准备编译环境

从微软官网下载并安装 Visual Studio 2022 Community 版。在安装器中:

  1. 选择Desktop development with C++工作负载;
  2. 切到 "Individual Components" 选项卡,搜索并同时勾选C++ Clang Compiler for WindowsMSBuild support for LLVM
  3. 继续完成安装。

额外勾选这两个组件不是可选项,否则 "Clang x64" 这套构建配置无法工作:cmake/CMakeWindowsPresets.json 中的x64-Clang-Base预设指定了clang-cl作为 C/C++ 编译器、Ninja作为生成器,且 CMakeLists.txt 开头将 C++ 标准固定为 23(CMAKE_CXX_STANDARD 23CMAKE_CXX_STANDARD_REQUIRED True)。

再安装 Git for Windows,按默认安装流程走即可。

一个版本约束需要留意:CMakePresets.json 通过cmakeMinimumRequired声明预设文件最低要求 CMake 3.30.0。

克隆 shadPS4 源码

打开 Git for Windows(终端),进入打算存放源码的目录,执行:

git clone --depth 1 --recursive https://github.com/shadps4-emu/shadPS4

文档特别提醒:如果你需要编译旧版本构建用于测试,git clone时不要带--depth 1。该参数会省略提交历史以节省空间,代价是无法再检出旧提交。

如果仓库已经克隆过、只是缺少子模块内容,可以改用:

git submodule update --init --recursive

在 Visual Studio 2022 中构建

  1. 打开 Visual Studio,选择Open a local folder,选中 shadPS4 源码目录。该目录必须包含CMakeLists.txt
  2. 工具栏上的构建配置默认是Clang x64 Debug。想要常规的非调试构建时,把它改成Clang x64 Release,否则保持Clang x64 Debug
  3. 将构建的项目(solution/project 下拉项)切换为shadps4.exe。这对应 CMakeLists.txt 中定义的可执行目标shadps4
  4. 菜单BuildBuild All

构建工具下拉框里的Clang x64 DebugClang x64 Release等选项,来自 CMakePresets.json 定义的x64-Clang-Debug/x64-Clang-Release预设,其二进制目录由binaryDir模板${sourceDir}/Build/${presetName}决定。

验证构建结果

构建成功后,shadps4.exe的位置随所选择的配置而定(文档按 Release 配置给出示例):

  • Clang x64 Release<你的源码目录>\Build\x64-Clang-Release\(文档写作C:\path\to\source\Build\x64-Clang-Release\,其中C:\path\to\source即你本地的源码目录);
  • Clang x64 Debug<你的源码目录>\Build\x64-Clang-Debug\

确认对应Build子目录中生成了shadps4.exe即说明该配置构建完成。产物生成后可以用--help标志运行它:README 说明该标志会输出所有可用命令的列表以及每条命令的更详细描述,例如shadPS4 CUSA00001会在游戏安装目录列表中查找名为 CUSA00001 的文件夹并启动它,shadPS4 /path/to/game.elf则直接启动一个 PS4 ELF 文件。

已知限制与替代路径

  • Windows ARM64 不受支持:文档写明目前不会构建也不会运行,其中涉及 ARM64 的说明仅供开发者参考;
  • MSYS2/MinGW 路径当前是坏的:文档指出目前 Windows 上可用的构建方式只有本文的 Visual Studio 2022 路径,以及 documents/building-windows.md 中 "Option 2: VSCode with Visual Studio Build Tools";
  • 如果默认 IDE 是 VSCode:同一文档给出可选的 Option 2,需另装 LLVM 19.1.1、CMake 4.2.3 或更新版本、Ninja 1.13.2 或更新版本,外加 Visual Studio Build Tools 的MSVC - Windows SDK组件(无需安装 IDE),再打开文档给出的shadps4.code-workspace工作区文件,把配置从Clang x64 Debug切到Clang x64 Release后点击 build,产物同样位于shadps4\shared\Build\x64-Clang-Release\。该路径与本文的 VS2022 路径二选一即可,不要混用。

【免费下载链接】shadPS4PlayStation 4 emulator for Windows, Linux, macOS and FreeBSD written in C++项目地址: https://gitcode.com/GitHub_Trending/sh/shadPS4

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 4:36:28

无广告免费软件清单:10款装机必备工具,从官网下载告别捆绑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:35:52

JDK8 时间 API 实战:从 Date 到 LocalDateTime 的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:34:15

MicroPython轻量日志模块uLogLite:极简设计实现日志级别与轮转

1. 写在前面&#xff1a;为什么我在 MicroPython 里弃用了标准 logging做了一段时间的 MicroPython 开发后&#xff0c;你会发现一个尴尬的事实&#xff1a;板子上跑着正经业务代码&#xff0c;结果日志系统反而是最先拖后腿的那个。官方标准库里的 logging 模块能用&#xff0…

作者头像 李华
网站建设 2026/9/11 4:33:41

含分布式电源的配电网优化:二阶锥松弛与YALMIP/MOSEK实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华