Linux Compilation Tutorial
Linux Compilation Tutorial
This tutorial requires readers to have some Linux environment configuration ability and programming foundation! If you only want to directly install MAA instead of compiling it yourself, please read User Manual - Linux Emulators and Containers.
Note
MAA's build method is still under discussion. The content of this tutorial may be outdated. Please refer to the scripts in GitHub workflow file. You can also refer to AUR PKGBUILD, nixpkgs.
Info
Mac can use the tools/build_macos_universal.zsh
script for compilation. It's recommended to refer to the README.md of the MaaAssistantArknights/MaaMacGui project.
Compilation Process
Download compilation dependencies
- Ubuntu/Debian
sudo apt install gcc-12 g++-12 cmake zlib1g-dev
Arch Linux
sudo pacman -S --needed gcc cmake zlib
Build third-party libraries
You can choose to download pre-built dependency libraries or compile from scratch
Download pre-built third-party libraries (recommended)
Note
Contains dynamic libraries compiled on relatively new Linux distributions (Ubuntu 22.04). If your system's libstdc++ version is older, you may encounter ABI incompatibility issues.python maadeps-download.py
If you find the libraries downloaded above cannot run on your system due to ABI version issues and you don't want to use container solutions, you can also try compiling from scratch
Build third-party libraries from scratch (will take considerable time)
git submodule update --init --recursive cd MaaDeps python build.py
Compile MAA
CC=gcc-12 CXX=g++-12 cmake -B build \ -DINSTALL_THIRD_LIBS=ON \ -DINSTALL_RESOURCE=ON \ -DINSTALL_PYTHON=ON cmake --build build
To install MAA to target location, note that MAA is recommended to run by specifying
LD_LIBRARY_PATH
, don't use administrator privileges to install MAA into/usr
cmake --install build --prefix <target_directory>
Integration Documentation
Perhaps not really documentation
Python
You can refer to the implementation of __main__
in Python demo
C++
You can refer to the implementation in CppSample
C Sharp
You can refer to the implementation in MaaWpfGui