ARTICLE DETAIL

资讯详情

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

如何从源码构建AnyPS5?Linux/Windows完整编译指南与CMake参数详解

如何从源码构建AnyPS5?Linux/Windows完整编译指南与CMake参数详解 如何从源码构建AnyPS5Linux/Windows完整编译指南与CMake参数详解【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/gh_mirrors/an/AnyPS5AnyPS5 是一款将 PS5 可执行文件自动移植到 Linux 和 Windows 的开源工具内置 relinker 重链接器与系统 PRX 库实现无需模拟器即可原生运行。本文将带你完成 AnyPS5 源码构建从工具链准备、CMake 参数详解到双平台编译与测试一篇看懂。 构建前准备工具链要求一览在开始编译 AnyPS5 之前先确认你的开发环境满足最低要求组件要求说明CMake≥ 3.20见 CMakeLists.txt 中的版本声明C 编译器C20 标准relinker 仅依赖 C20 标准库LinuxGCClibc.prx 含编译器相关代码Linux 下建议用 GCCWindowsMinGW-w64 GCC 15.2.0推荐winlibs-gcc15、x86_64-ucrt-posix-seh版本构建生成器Ninja推荐官方贡献指南即采用 NinjaPython 3可选用于注册部分 relinker 测试缺失不影响主程序编译 所有第三方依赖SDL2、ffmpeg-core、freetype、glslang、SPIRV-Tools 等均以子模块形式放在 3rdparty/ 目录下并从源码构建不需要你在系统里单独安装这些库。因此 clone 时建议带上子模块。git clone --recurse-submodules https://gitcode.com/gh_mirrors/an/AnyPS5 cd AnyPS5⚡ 最快编译方法三步完成 AnyPS5 构建官方 CONTRIBUTING.md 给出的标准流程只有三条命令这是构建 AnyPS5 的最快方式cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPERelease -DBUILD_TESTINGON cmake --build build ctest --test-dir build --output-on-failure逐条解释第一步配置-S . -B build指定源码目录为当前目录、构建目录为build/-G Ninja选择 Ninja 生成器-DCMAKE_BUILD_TYPERelease开启优化-DBUILD_TESTINGON启用测试。第二步编译并行编译全部目标产物输出到build/。第三步测试用 CTest 运行已注册的测试并打印失败详情。构建完成后你会得到几类产物relinker核心重链接工具负责把 ELF 可执行文件转换为目标系统格式源码见 core/relinker/main.cppnid_patcherNID 补丁工具见 core/libs/nid/src/main.cpp系统 PRX 库编译并打好 NID 补丁后输出到build/libs/聚合目标为libs见 core/libs/CMakeLists.txtshader recompiler将 PS5 着色器重编译为 SPIR-V 的静态库见 core/shader/recompiler/ CMake 参数详解4 个选项控制构建行为AnyPS5 根 CMakeLists.txt 中只暴露了少量构建开关每个都很有用CMake 参数默认值作用BUILD_TESTINGOFF构建并注册 CTest 测试套件跑测试前必须开启ANYPS5_ENABLE_SPIRV_TOOLSOFF启用 SPIRV-Tools 对着色器做校验与优化会额外编译 3rdparty/SPIRV-Tools 并链接SPIRV-Tools-opt见 recompiler/CMakeLists.txtAPS5_ENABLE_TIMING_LOGOFF开启帧耗时日志会以编译宏APS5_ENABLE_TIMING_LOG注入全部目标CMAKE_BUILD_TYPE无建议填Releaseshader 缓存版本头会把构建类型计入哈希切换类型可能使旧缓存失效示例开启着色器校验的完整配置命令cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPERelease \ -DBUILD_TESTINGON -DANYPS5_ENABLE_SPIRV_TOOLSON⚠️ 注意第三个开关的拼写是APS5_而非ANYPS5_这是项目中的原始命名配置时请照抄。 Linux 构建要点编译器Linux 下用 GCC。链接阶段会自动加上-static -static-libgcc -static-libstdc见 CMakeLists.txt但在链接共享 PRX 库时会按需移除-static见 core/libs/CMakeLists.txt。SDL 配置项目强制静态链接 SDL2 并只启用 X11 Vulkan 后端、禁用 Wayland/OpenGL见 CMakeLists.txt因此系统需安装 X11、Vulkan 头文件及相关静态开发包。Intel 平台如果你的 CPU 是 Intelrelinker 支持--to-intel参数会把可执行文件及其sce_module中受支持的 AMD-only 指令降级为 Intel 可运行的形式遇到不支持的指令会直接报错见 README.md 与 cli/CliArgs.cpp。 Windows 构建要点编译器Windows 目前要求 MinGW-w64 GCC 15.2.0winlibs-gcc15x86_64-ucrt-posix-seh线程模型这是由 libc.prx 中编译器相关代码决定的。DWAA 展开表链接 PRX 库后会自动调用objcopy把.eh_frame重命名为.ehfram以支持异常展开因此构建机必须能访问objcopy见 core/libs/CMakeLists.txt。静态链接MinGW 下可执行文件会附加-static -static-libgcc -static-libstdc产出不依赖额外 DLL 的 exe。✅ 运行测试验证你的构建是否健康开启BUILD_TESTINGON后ctest会运行 io、codegen、ELF 偏移校验、NID 过滤器等多组 C 测试若系统装有 Python 3还会额外注册一批 Python 驱动的 relinker 集成测试如 ELF 头校验、TLS、Windows GUI 子系统等注册逻辑见 core/relinker/CMakeLists.txt。ctest --test-dir build --output-on-failure 如果配置阶段提示Python3 interpreter not found; skipping Python relinker tests说明只是跳过了 Python 测试主程序构建不受影响。 常见问题快速排查Q1配置时报第三方库找不到本项目不从系统查找第三方库全部从 3rdparty/ 子模块源码构建。请确认 clone 时使用了--recurse-submodules或在已 clone 的仓库中执行git submodule update --init --recursive。Q2链接 PRX 库时提示缺少 objcopyWindowsMinGW构建依赖objcopy处理展开表请确保它在 PATH 中。Q3编译通过但运行 relinker 报错relinker 用法为relinker [选项] 输入.elf 输出.elf常用选项包括--windows转 PE、--to-intel、--rpath 路径、--lazy-binding等完整选项列表见 CliArgs.cpp 中的用法说明。Q4想深入了解项目结构重链接器核心在 core/relinker/系统库实现分布在 core/libs/prx/着色器重编译器在 core/shader/recompiler/开发规范可阅读 docs/dev/CONVENTIONS.md已验证游戏列表见 docs/user/COMPATIBILITY.md。 总结用不到 10 分钟就能完成 AnyPS5 的源码构建准备 GCC CMake Ninjagit clone时带上子模块跑三条标准命令即可得到 relinker、nid_patcher 和全套 PRX 系统库。记住三个 CMake 开关——BUILD_TESTING开启测试、ANYPS5_ENABLE_SPIRV_TOOLS增强着色器校验、APS5_ENABLE_TIMING_LOG记录帧耗时——就能自由定制你的 AnyPS5 编译环境。祝移植顺利【免费下载链接】AnyPS5Tool for automatic PS5 executables porting to Linux and Windows项目地址: https://gitcode.com/gh_mirrors/an/AnyPS5创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表