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 inExternals/. 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:| Build Type | Use Case | Root Required | Portable |
|---|---|---|---|
| Global | System-wide installation | Yes (for install) | No |
| Local | Development and testing | No | No |
| Portable | Multiple setups, external storage | No | Yes |
Global Build (System Installation)
This build type installs Dolphin system-wide, making it available to all users.git clone https://github.com/dolphin-emu/dolphin.git
cd dolphin
git submodule update --init --recursive
CMake will check for dependencies and inform you of any missing packages or if bundled versions will be used.
Uninstalling Global Builds
To uninstall a global build:Local Build (Development)
Local builds are ideal for development as they don’t require root access and create relocatable binaries.git clone https://github.com/dolphin-emu/dolphin.git
cd dolphin
git submodule update --init --recursive
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.git clone https://github.com/dolphin-emu/dolphin.git
cd dolphin
git submodule update --init --recursive
Using Portable Builds
Portable builds store all user data (saves, configs, etc.) in theBinaries/ 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: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-emufrom anywhere - Local/Portable builds: Run
./Binaries/dolphin-emufrom the build directory - User data is stored in
~/.local/share/dolphin-emu/(orBinaries/User/for portable builds)