Sudachi Linux版打包:AppImage与Flatpak制作
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
- 安装AppImage工具链:
sudo apt install appimagekit
- 创建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/
- 生成.desktop文件:
[Desktop Entry]
Name=Sudachi
Exec=sudachi
Icon=sudachi
Type=Application
Categories=Game;Emulator;
- 打包为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
分发建议
- 将生成的AppImage和Flatpak包上传至项目Releases页面
- 添加校验信息:
sha256sum sudachi-*.AppImage > sudachi.sha256
常见问题
依赖缺失
若运行时提示缺少库文件,可通过ldd命令检查动态依赖:
ldd sudachi | grep "not found"
构建优化
- 启用LTO提升性能:添加
-DSUDACHI_ENABLE_LTO=ON编译选项 - 减小体积:使用
strip工具精简二进制文件
strip sudachi
通过以上步骤,可将Sudachi模拟器打包为便携的AppImage和沙箱化的Flatpak格式,满足不同Linux发行版用户的使用需求。完整构建文档可参考官方指南。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



