Сборка mGBA из исходников

Это руководство объясняет, как скомпилировать mGBA из исходного кода. Сборка из исходников позволяет использовать последнюю версию разработки, настроить сборку или участвовать в проекте.

Предварительные требования

Необходимые инструменты

  • CMake 3.1 или новее: Генератор системы сборки
  • Компилятор C: GCC 4.9+, Clang 3.4+ или MSVC 2015+
  • Git: Система контроля версий

Зависимости

  • SDL2: Кроссплатформенная мультимедийная библиотека (2.0.8 или новее)
  • Qt5: GUI инструментарий (опционально, для Qt GUI)
  • libpng: Библиотека изображений PNG
  • zlib: Библиотека сжатия
  • lua: Библиотека скриптов Lua (5.4, опционально)

Получение исходного кода

Клонирование репозитория

git clone https://github.com/mgba-emu/mgba.git
cd mgba

Обновление подмодулей

git submodule update --init --recursive

Сборка на Windows

Использование Visual Studio

  1. Установите Visual Studio 2015 или новее с поддержкой C++
  2. Установите CMake и добавьте в PATH
  3. Запустите CMake GUI или используйте командную строку:
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
cmake --build . --config Release

Использование MinGW

mkdir build
cd build
cmake .. -G "MinGW Makefiles"
cmake --build .

Сборка на macOS

Использование Xcode

  1. Установите Xcode Command Line Tools: xcode-select --install
  2. Установите зависимости через Homebrew:
brew install cmake sdl2 libpng zlib lua

Затем соберите:

mkdir build
cd build
cmake .. -G Xcode
cmake --build . --config Release

Сборка на Linux

Ubuntu/Debian

Установите зависимости:

sudo apt-get update
sudo apt-get install build-essential cmake libsdl2-dev libqt5opengl5-dev qtbase5-dev libpng-dev zlib1g-dev liblua5.4-dev

Соберите:

mkdir build
cd build
cmake ..
make -j4

Fedora

sudo dnf install gcc cmake SDL2-devel qt5-qtbase-devel libpng-devel zlib-devel lua-devel
mkdir build && cd build
cmake ..
make -j4

Arch Linux

sudo pacman -S cmake sdl2 qt5-base libpng zlib lua
mkdir build && cd build
cmake ..
make -j4

Опции CMake

Настройте параметры сборки:

  • USE_QT: Включить Qt GUI (ON/OFF, по умолчанию: ON)
  • USE_SDL: Включить интерфейс SDL (ON/OFF, по умолчанию: ON)
  • USE_DEBUGGERS: Включить поддержку отладчика (ON/OFF, по умолчанию: ON)
  • USE_LUA: Включить скрипты Lua (ON/OFF, по умолчанию: ON)
  • BUILD_GL: Собрать рендерер OpenGL (ON/OFF, по умолчанию: ON)
cmake .. -DUSE_QT=ON -DUSE_SDL=ON -DUSE_LUA=ON

Установка

После сборки установите mGBA:

# Linux/macOS
sudo cmake --install . --prefix /usr/local

# Или установите в пользовательское место
cmake --install . --prefix ~/local

Устранение проблем со сборкой

Отсутствующие зависимости

Если CMake сообщает об отсутствующих зависимостях:

  • Установите отсутствующие пакеты с помощью менеджера пакетов
  • Убедитесь, что установлены заголовочные файлы разработки (не только библиотеки времени выполнения)
  • Используйте pkg-config для проверки установки зависимостей

Ошибки сборки

Распространённые ошибки сборки и решения:

  • Ошибки компилятора: Обновите компилятор до поддерживаемой версии
  • Ошибки линковщика: Убедитесь, что все зависимости установлены
  • Ошибки CMake: Обновите CMake до версии 3.1 или новее
  • Проблемы с подмодулями Git: Запустите git submodule update --init --recursive
Нужна помощь? Если вы столкнулись с проблемами сборки, проверьте GitHub Issues на наличие похожих проблем или попросите помощи в GitHub Discussions.

Связанные статьи

Для получения дополнительной информации о разработке mGBA: