15,188
edits
Progress Continues
We've already had 21455 updates since Dolphin 5.0. Keep up with Dolphin's continuing progress through the Dolphin Blog: August, September, and October 2023 Progress Report. |
The Dolphin Emulator Wiki needs your help! Dolphin can play thousands of games, and changes are happening all the time. Help us keep up! Join in and help us make this the best resource for Dolphin. |
(→16.04 (LTS): Fixing formatting, my bad) |
m (→Addendum A) |
||
(35 intermediate revisions by 20 users not shown) | |||
Line 1: | Line 1: | ||
Users running Linux distros have to build Dolphin from source. Dolphin is compatible with x86-64 and AArch64 Linux distributions. This is a guide to compiling Dolphin using the cmake build system. | |||
For help on building on Ubuntu-based distros, such as ''Linux Mint'', ''Elementary OS'', ''Zorin OS'', ''Bodhi Linux'', ''Deepin'', ''Linux Lite'', ''Pinguy OS'', ''Kubuntu'', ''Xubuntu'', ''Lubuntu'', ''Ubuntu GNOME'', ''Edubuntu'', ''Ubuntu Studio'' or ''Mythbuntu'', see [[#Ubuntu|the instructions for Ubuntu]] below. | For help on building on Ubuntu-based distros, such as ''Linux Mint'', ''Elementary OS'', ''Zorin OS'', ''Bodhi Linux'', ''Deepin'', ''Linux Lite'', ''Pinguy OS'', ''Kubuntu'', ''Xubuntu'', ''Lubuntu'', ''Ubuntu GNOME'', ''Edubuntu'', ''Ubuntu Studio'' or ''Mythbuntu'', see [[#Ubuntu|the instructions for Ubuntu]] below. | ||
Line 5: | Line 5: | ||
== Step 1 - Installing the Dependencies == | == Step 1 - Installing the Dependencies == | ||
=== Ubuntu === | === Ubuntu === | ||
Follow the steps below only if you like to make your own package or use a specific git commit version. There's a [https://wiki.dolphin-emu.org/index.php?title=Installing_Dolphin#Ubuntu PPA] with | Follow the steps below only if you like to make your own package or use a specific git commit version. There's a [https://wiki.dolphin-emu.org/index.php?title=Installing_Dolphin#Ubuntu PPA] with Dolphin already built, easy to use. | ||
==== | ==== 18.04 LTS and up ==== | ||
''Follow this step for Ubuntu 18.04 LTS and later. It probably also works for Debian GNU/Linux 10.''<br> | |||
''Follow this step for Ubuntu | |||
Install all necessary packages by running the following command: | Install all necessary packages by running the following command: | ||
<pre>sudo apt- | <pre>sudo apt install --no-install-recommends ca-certificates qtbase5-dev qtbase5-private-dev git cmake make gcc g++ pkg-config libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libxi-dev libxrandr-dev libudev-dev libevdev-dev libsfml-dev libminiupnpc-dev libmbedtls-dev libcurl4-openssl-dev libhidapi-dev libsystemd-dev libbluetooth-dev libasound2-dev libpulse-dev libpugixml-dev libbz2-dev libzstd-dev liblzo2-dev libpng-dev libusb-1.0-0-dev gettext</pre> | ||
Add -DUSE_SHARED_ENET=ON on cmake line if you want to build Dolphin against shared libenet-dev. | |||
===Fedora=== | === Fedora === | ||
[https://wiki.dolphin-emu.org/index.php?title=Installing_Dolphin#Fedora Quick method] for Fedora 24 and later. | |||
==== | ==== 23 ==== | ||
These dependencies must be installed. | These dependencies must be installed. | ||
<pre>dnf install cmake git gcc-c++ libXext-devel libgudev | <pre>dnf install cmake git gcc-c++ libXext-devel libgudev qt5-devel systemd-devel openal-soft-devel libevdev-devel libao-devel SOIL-devel libXrandr-devel pulseaudio-libs-devel bluez-libs-devel libusb-devel </pre> | ||
The following dependencies are best from [https://rpmfusion.org/ RPM Fusion] and may not be provided in Fedora repos. | |||
<pre>dnf install ffmpeg ffmpeg-devel</pre> | <pre>dnf install ffmpeg ffmpeg-devel</pre> | ||
=== Other Linux Distributions === | === Other Linux Distributions === | ||
If running another distribution, see the build dependencies in [[#Addendum A | If running another distribution, see the build dependencies in [[#Addendum A|Addendum A]] for a list of packages needed to install. | ||
== Step 2 - Get the Dolphin Repository == | == Step 2 - Get the Dolphin Repository == | ||
Install git if it's not already installed: | Install git if it's not already installed: | ||
*for apt-based distros (eg Ubuntu, Debian, Linux Mint): <code>sudo apt | *for apt-based distros (eg Ubuntu, Debian, Linux Mint): <code>sudo apt install git</code> | ||
*for rpm-based distros (eg Red Hat, Fedora | *for rpm-based distros (eg Red Hat, Fedora): <code>su -c 'dnf install git'</code> | ||
*for openSUSE: <code>sudo zypper in git</code> | |||
*for pacman-based distros (eg Arch Linux): <code>sudo pacman -S git</code> | *for pacman-based distros (eg Arch Linux): <code>sudo pacman -S git</code> | ||
Line 84: | Line 43: | ||
<code>cd ./dolphin-emu</code> | <code>cd ./dolphin-emu</code> | ||
Pull the git submodules. | |||
<code>git submodule update --init</code> | |||
To update the local copy in the future without repeating the whole process, run <code>git pull origin</code> within the <code>dolphin-emu</code> directory and proceed to the following steps. | To update the local copy in the future without repeating the whole process, run <code>git pull origin</code> within the <code>dolphin-emu</code> directory and proceed to the following steps. | ||
Line 101: | Line 64: | ||
<code>cmake ..</code> | <code>cmake ..</code> | ||
If you are using a different gcc version ( | If you are using a different gcc version (7 on Ubuntu 16.04 for example), you'll need to overwrite some flags: | ||
<code> | <code>cmake .. -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7 </code> | ||
You can compile with clang too: | You can compile with clang too: | ||
<code> | <code>cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS=-stdlib=libc++</code> | ||
Note that you will have to add libc++-dev as dependence in this case. Clang minimum version is 3.4. Use SFML from Externals/, otherwise you'll get some '''[ | Note that you will have to add libc++-dev and libc++abi-dev as dependence in this case. Clang minimum version is 3.4. Use SFML and pugixml from Externals/ (the latter is only necessary for {{revision|5.0-7026}} and later), otherwise you'll get some '''[https://hastebin.com/raw/etarucuged undefined references]'''. | ||
Optionally you can change the install prefix by adding "- | Optionally you can change the install prefix by adding "-DCMAKE_INSTALL_PREFIX=/new/path". Note that this path does not need to be absolute. cmake will complete it to its absolute equivalent. The default prefix is "/usr". This means that the executable will be installed as "/usr/bin/dolphin-emu", the plugins will be installed into "/usr/lib/dolphin-emu", and the shared data files will be installed into "/usr/share/dolphin-emu". | ||
From here build and install in the standard make way. | From here build and install in the standard make way. | ||
<code>make | <code>make -j$(nproc) | ||
sudo make install</code> | sudo make install</code> | ||
Line 136: | Line 99: | ||
*'''Where can I get help?''' | *'''Where can I get help?''' | ||
Go to the [ | Go to the [https://forums.dolphin-emu.org forums]. Lots of Dolphin users use Linux, and they are very experienced with this process. | ||
*'''My build failed, but I did nothing wrong!''' | *'''My build failed, but I did nothing wrong!''' | ||
Most of the time, any problems in the build process are due to user error. It's understandable, it is a complicated process and can be quite daunting for a first timer. But sometimes even with everything right, triple checked, and it's still not working. It's rare, but sometimes a build will just be bugged. But many of Dolphin devs are Linux users, so just wait a day or so, and it will be sorted out. If you are trying on Ubuntu 16.04, it | Most of the time, any problems in the build process are due to user error. It's understandable, it is a complicated process and can be quite daunting for a first timer. But sometimes even with everything right, triple checked, and it's still not working. It's rare, but sometimes a build will just be bugged. But many of Dolphin devs are Linux users, so just wait a day or so, and it will be sorted out. If you are trying on Ubuntu 16.04, it is tested and working now. | ||
*'''I want a PKGBUILD!''' | *'''I want a PKGBUILD!''' | ||
Line 147: | Line 110: | ||
== Addendum A == | == Addendum A == | ||
{{Fmbox | |||
|text = '''Outdated''' | |||
<br/>This section has not been updated since July 2019 and no longer aligns with Dolphin's current dependencies. | |||
}} | |||
This addendum lists the dependencies to build Dolphin. | This addendum lists the dependencies to build Dolphin. | ||
Line 226: | Line 193: | ||
This script checks for Dolphin's source code, downloads it or updates it, then compiles it and finally installs it. It is somewhat interactive and distro-independent.<br> | This script checks for Dolphin's source code, downloads it or updates it, then compiles it and finally installs it. It is somewhat interactive and distro-independent.<br> | ||
It '''will not''' install any of the dependencies listed above, and will fail if any of them are missing. Install manually as described at [[#Step 1 - Installing the Dependencies|the first step]].<br> | It '''will not''' install any of the dependencies listed above, and will fail if any of them are missing. Install manually as described at [[#Step 1 - Installing the Dependencies|the first step]].<br> | ||
Licence: [ | Licence: [https://www.gnu.org/licenses/gpl-2.0.html GNU General Public Licence v2] or (at your option) any later version of the GPL.<br> | ||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
Line 250: | Line 217: | ||
echo 'Proceeding to the installation; press Enter to continue or Ctrl+C to cancel.' | echo 'Proceeding to the installation; press Enter to continue or Ctrl+C to cancel.' | ||
read | read | ||
if [ $(whoami) == "root"]; | if [ $(whoami) == "root" ]; | ||
then | then | ||
make install | make install | ||
Line 263: | Line 230: | ||
Within this directory, the script will create two subdirectories, ''dolphin-emu'' and ''build''. It must remain in this directory to work.<br> | Within this directory, the script will create two subdirectories, ''dolphin-emu'' and ''build''. It must remain in this directory to work.<br> | ||
Execute the script from anywhere, by running <code>sh /path/to/the/script.sh</code>, where /path/to/the/script.sh is replaced with the actual path to the script.<br> | Execute the script from anywhere, by running <code>sh /path/to/the/script.sh</code>, where /path/to/the/script.sh is replaced with the actual path to the script.<br> | ||
The script will download Dolphin's source, or update it if it has already been downloaded once. After building it, the script will install it. This requires root privileges. After the installation, the script exits, and Dolphin can be used. Note that the process is very fast and simple after the first time. Using a [ | The script will download Dolphin's source, or update it if it has already been downloaded once. After building it, the script will install it. This requires root privileges. After the installation, the script exits, and Dolphin can be used. Note that the process is very fast and simple after the first time. Using a [https://askubuntu.com/a/17538 bash alias] to execute the script by running a custom command such as <code>dolphin-update</code> is recommended. | ||
[[Category:Tutorials]] | [[Category:Tutorials]] |