Sudachi Linux版打包:AppImage与Flatpak制作

Sudachi Linux版打包:AppImage与Flatpak制作

【免费下载链接】sudachi Sudachi is a Nintendo Switch emulator for Android, Linux, macOS and Windows, written in C++ 【免费下载链接】sudachi 项目地址: https://gitcode.com/GitHub_Trending/suda/sudachi

Sudachi是一款跨平台Nintendo Switch模拟器(Android/Linux/Windows),基于C++开发。本文将详细介绍如何为Linux系统制作两种主流打包格式——AppImage与Flatpak,帮助开发者和用户更便捷地分发与使用Sudachi。

准备工作

环境要求

构建Sudachi打包环境需安装以下依赖:

sudo apt install autoconf cmake g++-11 gcc-11 git glslang-tools libasound2 libboost-context-dev libglu1-mesa-dev libhidapi-dev libpulse-dev libtool libudev-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxext-dev libxkbcommon-x11-0 mesa-common-dev nasm ninja-build qtbase5-dev qtbase5-private-dev qtwebengine5-dev qtmultimedia5-dev libmbedtls-dev catch2 libfmt-dev liblz4-dev nlohmann-json3-dev libzstd-dev libssl-dev libavfilter-dev libavcodec-dev libswscale-dev libunistring-dev libaom-dev libdav1d-dev autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev meson ninja-build pkg-config texinfo wget yasm zlib1g-dev nasm libx264-dev libx265-dev libnuma-dev libvpx-dev libfdk-aac-dev libopus-dev libsvtav1-dev libsvtav1enc-dev libsvtav1dec-dev libdav1d-dev

源码获取

通过Git克隆项目仓库:

git clone --recursive https://gitcode.com/GitHub_Trending/suda/sudachi
cd sudachi

AppImage打包

编译基础程序

使用CMake构建Release版本:

mkdir build && cd build
cmake .. -DSUDACHI_USE_BUNDLED_VCPKG=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=x86-64-v2" -DCMAKE_INSTALL_PREFIX=/usr -GNinja
cmake --build . --config Release

生成AppImage

  1. 安装AppImage工具链:
sudo apt install appimagekit
  1. 创建AppDir结构:
mkdir -p sudachi.AppDir/usr/{bin,lib,share/applications,share/icons/hicolor/256x256/apps}
cp src/sudachi/sudachi sudachi.AppDir/usr/bin/
cp -r build/bin/* sudachi.AppDir/usr/lib/
  1. 生成.desktop文件:
[Desktop Entry]
Name=Sudachi
Exec=sudachi
Icon=sudachi
Type=Application
Categories=Game;Emulator;
  1. 打包为AppImage:
cd sudachi.AppDir
ln -s usr/share/icons/hicolor/256x256/apps/sudachi.png .DirIcon
appimagetool . sudachi-$(git rev-parse --short HEAD).AppImage

Flatpak打包

安装Flatpak SDK

flatpak install flathub org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08

编写flatpak-builder清单

创建com.sudachi.emu.yml

id: com.sudachi.emu
runtime: org.kde.Platform
runtime-version: '5.15-21.08'
sdk: org.kde.Sdk
command: sudachi
modules:
  - name: sudachi
    sources:
      - type: git
        url: https://gitcode.com/GitHub_Trending/suda/sudachi
        tag: main
    buildsystem: cmake-ninja
    builddir: true
    config-opts:
      - -DCMAKE_BUILD_TYPE=Release
      - -DCMAKE_INSTALL_PREFIX=/app

构建Flatpak包

flatpak-builder --repo=sudachi-repo build-dir com.sudachi.emu.yml
flatpak build-bundle sudachi-repo sudachi.flatpak com.sudachi.emu

验证与分发

运行测试

# AppImage测试
chmod +x sudachi-*.AppImage
./sudachi-*.AppImage

# Flatpak测试
flatpak install --user sudachi.flatpak
flatpak run com.sudachi.emu

分发建议

  1. 将生成的AppImage和Flatpak包上传至项目Releases页面
  2. 添加校验信息:
sha256sum sudachi-*.AppImage > sudachi.sha256

常见问题

依赖缺失

若运行时提示缺少库文件,可通过ldd命令检查动态依赖:

ldd sudachi | grep "not found"

构建优化

  • 启用LTO提升性能:添加-DSUDACHI_ENABLE_LTO=ON编译选项
  • 减小体积:使用strip工具精简二进制文件
strip sudachi

通过以上步骤,可将Sudachi模拟器打包为便携的AppImage和沙箱化的Flatpak格式,满足不同Linux发行版用户的使用需求。完整构建文档可参考官方指南

【免费下载链接】sudachi Sudachi is a Nintendo Switch emulator for Android, Linux, macOS and Windows, written in C++ 【免费下载链接】sudachi 项目地址: https://gitcode.com/GitHub_Trending/suda/sudachi

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

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值