Linux 编译教程
约 818 字大约 3 分钟
注意
本教程需要读者有一定的 Linux 环境配置能力及编程基础!若您仅希望运行 MAA 而非自行编译,请阅读用户手册 - Linux 模拟器与容器。
注意
MAA 的构建方法仍在讨论中, 本教程的内容可能过时, 请以 GitHub workflow file 中的脚本为准。
你也可参考 AUR PKGBUILD 或 nixpkgs。
相关信息
Mac 可以使用 tools/build_macos_universal.zsh 脚本进行编译
建议参考 MaaAssistantArknights/MaaMacGui 项目的 README.md
编译 MaaCore
下载编译所需的依赖
Ubuntu/Debiansudo apt-get install cmake ninja-buildArchsudo pacman -S --needed cmake ninja构建第三方库
以下方式任选其一:
下载预构建的第三方库 (推荐)
python tools/maadeps-download.py相关信息
预构建第三方库基于 MaaLinuxToolchain 工具链交叉编译,仅需要依赖 glibc 2.31(Ubuntu 20.04)。如果您仍遇到 ABI 不兼容的问题,可以使用容器,或尝试自行构建第三方库。
自行构建第三方库 (将花费较长时间)
git clone --recurse-submodules https://github.com/MaaAssistantArknights/MaaDeps.git cd MaaDeps # 如果系统环境过低无法使用我们预构建的 llvm 20, 请考虑不使用交叉编译, 直接使用本地编译环境. # 需要调整 src/MaaUtils/MaaDeps/cmake 中的 toolchain 配置. python linux-toolchain-download.py python build.py
编译 MAA
cmake --preset linux-x64 -DINSTALL_RESOURCE=ON -DINSTALL_PYTHON=ON cmake --build build cmake --install build --prefix <target_directory>前 2 行命令生成
build/bin/Debug/libMaaCore.so(及libMaaUtils.so),第 3 行命令将编译产物安装(即复制)到目标位置。CMake 选项说明
-DINSTALL_RESOURCE=ON的作用是将resource目录复制到安装目录。MaaCore 需要配合resource目录运行。-DINSTALL_PYTHON=ON的作用是将 Python 集成(src/Python)复制到安装目录。如果不使用或计划从仓库源代码中使用 Python 集成,则可省略此选项。提示
推荐通过指定动态库文件路径或
LD_LIBRARY_PATH来运行 MAA,不要使用 root 权限将 MAA 装入/usr。编译 MaaFramework 相关组件
若需调试 MaaFwAdbController(MaaFwAdb 触控模式)相关功能,需要自行编译 MaaFramework 的 Debug 版本,将
libMaaAdbControlUnit.so放到安装目录下。运行
编译 MaaWpfGui
注意
MaaWpfGui 适用于 Windows,编译产物在 Linux 上需要通过 Wine 运行,详见 使用 Wine。
准备
MaaCore.dllMaaWpfGui 依赖
MaaCore.dll(及其依赖的其他 DLL)。目前无法从 Linux 交叉编译出 Windows 版的MaaCore.dll。虽然可以从 MAA 的 Windows 安装包中复制,但易出现版本不一致问题。故推荐的做法是先按上一节的说明编译 MaaCore(无需安装),然后编译 MaaWineBridge,将得到的
MaaCore.dll置于build/bin/Debug目录。安装 .NET SDK
Ubuntusudo apt install dotnet-sdk-10.0Archsudo pacman -S --needed dotnet-sdk另请参考 在 Linux 上安装 .NET。
编译 MaaWpfGui
在仓库根目录下运行:
dotnet build src/MaaWpfGui/MaaWpfGui.csproj -p:Platform=x64首次编译时会自动下载依赖。此步骤会生成
build/bin/Debug/MAA.exe。运行
wine build/bin/Debug/MAA.exe
