-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Building for Linux
git
curl
-
cmake
, version 3.13 or newer for Dolphin 5.0-16995 and newer. - C++ compiler such as
gcc
, with C++20 support for Dolphin 5.0-17123 and newer.
Ubuntu 18.04 and 20.04 users, please install QT6 from source or an outside repo. One way to do so is to add this PPA by running sudo add-apt-repository ppa:okirby/qt6-backports && sudo apt update
before running the next command.
sudo apt install build-essential git cmake ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libevdev-dev libusb-1.0-0-dev libxrandr-dev libxi-dev libpangocairo-1.0-0 qt6-base-private-dev libqt6svg6-dev libbluetooth-dev libasound2-dev libpulse-dev libgl1-mesa-dev libcurl4-openssl-dev
sudo apt install libudev-dev libsystemd-dev || sudo apt install libeudev-dev #distros without systemd like AntiX must use eudev instead
sudo dnf install vulkan-loader vulkan-loader-devel cmake git gcc-c++ libXext-devel libgudev qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtsvg-devel systemd-devel openal-soft-devel libevdev-devel libao-devel SOIL-devel libXrandr-devel pulseaudio-libs-devel bluez-libs-devel libusb1-devel libXi-devel
see https://aur.archlinux.org/packages/dolphin-emu-git?all_deps=1#pkgdeps
(!WIP) Chrome/Chromium OS (via Chromebrew):
crew install binutils wayland cmake gcc buildessential git libx11 pkg-config libxi libxext qtbase qtwayland mesa libxfixes libxxf86vm libusb libdrm libxrandr gettext linuxheaders enet libxshmfence libunwind lm_sensors elfutils patchelf vulkan_icd_loader
#Intel hardware
crew install xorg_intel_driver
#Nvidia hardware
crew install xorg_nouveau_driver
git clone https://github.com/dolphin-emu/dolphin
cd dolphin
git submodule update --init --recursive \
Externals/mGBA \
Externals/spirv_cross \
Externals/zlib-ng \
Externals/libspng \
Externals/VulkanMemoryAllocator \
Externals/cubeb \
Externals/implot \
Externals/gtest \
Externals/rcheevos \
Externals/fmt \
Externals/lz4 \
Externals/xxhash \
Externals/enet \
Externals/SDL \
&& git pull --recurse-submodules
If your system has an old compiler in its system repos, a higher version can be specified with build flags. For example, Ubuntu 18.04 users should install gcc-11
from something like this PPA and then instead of cmake ..
type cmake .. -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11
during the build process.
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install #optional, to install Dolphin
mkdir build && cd build
cmake .. -DLINUX_LOCAL_DEV=true
make -j$(nproc)
ln -s ../../Data/Sys Binaries/
mkdir build && cd build
cmake .. -DLINUX_LOCAL_DEV=true
make -j$(nproc)
cp -r ../Data/Sys/ Binaries/
touch Binaries/portable.txt
following the instructions from the PR where this feature was implemented:
sudo apt install dpkg-dev
mkdir build && cd build
cmake -DCPACK_PACKAGE_CONTACT="Your Name Here" .. #you're responsible for what you distribute
make -j$(nproc)
cpack -G DEB
On some distributions of Linux, package maintainers provide unofficial, unmodified builds of Dolphin. These are listed below:
- Debian and Ubuntu use a highly outdated 6-year-old build. DO NOT INSTALL DOLPHIN EMULATOR FROM APT!
- Arch Linux
- Fedora Follows the latest beta version but isn't quite always caught up with the most recent
- OpenSUSE
- Gentoo
- Flatpak updated with latest "beta" versions - Steam Deck users may recognize this as the version distributed in the desktop mode's Discover store
- The compiler will normally tell you what's going on if you run into an error. Read the error messages closely and look them up verbatim to see if it's something missing on your system and/or a typo in recent Dolphin commits.
- QT5 support has been officially been deprecated by the Dolphin development team. While it's still technically possible to build using QT5, as of 5.0-17764 the minimum requirement was raised to 5.15. It's recommended to install the proper QT6 dependencies instead - by the time you're reading this, it's possible that not even 5.15 works anymore.
- That being said, there is a known bug as of QT 6.3+ where mouse clicks don't work on Linux. No one's really sure why yet. This can be worked around by setting
QT_XCB_NO_XI2=1
. As an example, you can just run Dolphin using theQT_XCB_NO_XI2=1 dolphin-emu
command in a terminal. Another easy way to accomplish this would be to installmenulibre
from your package manager, open it and use it to modify Dolphin's desktop file, and change the Command to read something likeenv QT_XCB_NO_XI2=1 QT_QPA_PLATFORM=xcb dolphin-emu
. Although it would be more proper to set this as an environment variable.
- That being said, there is a known bug as of QT 6.3+ where mouse clicks don't work on Linux. No one's really sure why yet. This can be worked around by setting
- Need more speed? As an alternative to
cmake ..
during the build process, typecmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-march=native -DCMAKE_C_FLAGS=-march=native
instead. The resulting build will be optimized specifically for YOUR processor! The difference is more noticeable the weaker your computer is. Note that this may result in longer compile times, and the binaries you build will almost certainly be unusable on any computer besides your own. AUR users of*-git
packages can get a similar effect by following https://wiki.archlinux.org/title/makepkg#Building_optimized_binaries
Homepage | Project Site | Forums | Wiki | Issue Tracker | Coding Style | Transifex Page