Skip to main content
Dolphin uses CMake for building on Linux. This guide covers all three build types: global installation, local development, and portable builds.

Prerequisites

Required Software

  • CMake: Version 3.20 or later
  • Git: For cloning the repository
  • GCC: Version 12 or later, OR Clang: Version 15 or later
  • Make or Ninja: Build system backend

Compiler Requirements

Dolphin requires a modern compiler with C++23 support:
  • GCC 12+: Recommended for most distributions
  • Clang 15+: Alternative compiler
CMake will inform you if your compiler is too old.

Dependencies

Dolphin bundles many dependencies in Externals/. CMake will inform you if any additional system packages are needed. For optimal builds, consider installing system development libraries. Refer to the Dolphin wiki for distribution-specific package lists.

Build Type Overview

Linux supports three distinct build types:

Global Build (System Installation)

This build type installs Dolphin system-wide, making it available to all users.

Uninstalling Global Builds

To uninstall a global build:
This must be run as root from the original build directory.

Local Build (Development)

Local builds are ideal for development as they don’t require root access and create relocatable binaries.

Running Local Builds

Run Dolphin from the build directory:

Portable Build

Portable builds can be stored on external storage and used across different Linux systems. They’re also useful for maintaining multiple Dolphin configurations for testing, development, or TAS work.

Using Portable Builds

Portable builds store all user data (saves, configs, etc.) in the Binaries/ directory alongside the executable. You can:
  • Copy the entire Binaries/ folder to external storage
  • Run on different Linux systems
  • Maintain multiple independent Dolphin setups

CMake Build Options

Customize your build with CMake options:

Common Options

Combining Options

Multiple options can be combined:

Using Ninja Instead of Make

Ninja is faster than Make for incremental builds:

Advanced Build Scenarios

Generic Build (No JIT)

For unsupported architectures or when JIT is not desired:
Generic builds are significantly slower as they disable the JIT compiler.

Cross-Compilation

For cross-compiling to different architectures, use CMake toolchain files:

Custom Install Prefix

Change the installation directory:

Troubleshooting

Compiler Too Old

Error: CMake reports compiler version is too old Solution: Install a newer compiler:

Missing Dependencies

Error: CMake reports missing packages Solution: CMake will inform you which packages are missing. Install them using your distribution’s package manager, or let CMake use bundled versions.

Submodules Not Initialized

Error: Missing files from Externals directory Solution:

Build Errors After Git Pull

Solution: Clean and rebuild:

Sys Folder Not Found

Error: Dolphin can’t find the Sys folder Solution:
  • Local builds: Ensure the symlink exists: ln -s ../../Data/Sys Binaries/
  • Portable builds: Ensure Sys was copied: cp -r ../Data/Sys/ Binaries/

Distribution-Specific Notes

Ubuntu/Debian

Fedora

Arch Linux

These are example package lists. CMake will inform you of any missing dependencies specific to your configuration.

Next Steps

After building:
  • Global builds: Run dolphin-emu from anywhere
  • Local/Portable builds: Run ./Binaries/dolphin-emu from the build directory
  • User data is stored in ~/.local/share/dolphin-emu/ (or Binaries/User/ for portable builds)