The below wiki article is based on user submitted content.
Please verify all hyperlinks and terminal commands below!
Building for Linux
An unofficial PKGBUILD of Citra is available for Arch Linux on the AUR.
Dependencies:
You’ll need to download and install the following to build Citra:
-
- Deb:
apt install libsdl2-dev
- Arch:
pacman -S sdl2
- Fedora:
dnf install SDL2-devel
- OpenSUSE:
zypper in libSDL2-devel
- Deb:
-
OpenSSL (optional)
- Deb:
apt install libssl-dev
- Arch:
pacman -S openssl-1.0
- Fedora:
dnf install openssl-devel
- OpenSUSE:
zypper in openssl-devel
- Deb:
-
Qt 6.2+
- Only 6.2+ versions are tested. Lower version might or might not work. See the section Install new Qt version below if your distro does not provide a sufficient version of Qt
- Deb:
apt install qt6-base-dev qt6-base-private-dev qt6-multimedia-dev
- You may also need
apt install qt6-l10n-tools qt6-tools-dev qt6-tools-dev-tools
to build with translation support
- You may also need
- Arch:
pacman -S qt6-base qt6-multimedia qt6-multimedia-ffmpeg
- You will also need to install a multimedia backend, either
qt6-multimedia-ffmpeg
orqt6-multimedia-gstreamer
.
- You will also need to install a multimedia backend, either
- Fedora:
dnf install qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtmultimedia-devel
- OpenSUSE:
zypper in qt6-base qt6-multimedia
-
Optional dependencies needed for HLE AAC Decoding on Linux
- FFMPEG 4.0+
- Deb:
sudo apt install ffmpeg libswscale-dev libavformat-dev libavcodec-dev libavdevice-dev
- Fedora:
dnf install ffmpeg-devel compat-ffmpeg4
- OpenSUSE Leap 15:
zypper in ffmpeg-3 ffmpeg-3-libavcodec-devel
- OpenSUSE Tumbleweed:
zypper in ffmpeg-4 ffmpeg-4-libavcodec-devel
- Deb:
- FFMPEG 4.0+
-
Compiler: GCC or Clang. You only need one of these two:
- GCC 10.0+.
- Deb:
apt install build-essential
- Arch:
pacman -S base-devel
- Fedora:
dnf install gcc-c++
- OpenSUSE:
zypper in gcc-c++
- Deb:
- Clang 9.0+
- Deb:
apt install clang clang-format libc++-dev
(in some distros, clang-9.0). - Arch:
pacman -S clang
,libc++
is in the AUR. Use pacaur or yaourt to install it. - Fedora:
dnf install clang libcxx-devel
- OpenSUSE:
zypper in clang
- Deb:
- GCC 10.0+.
-
CMake 3.20+
- Deb:
apt install cmake
- Arch:
pacman -S cmake
- Fedora:
dnf install cmake
- OpenSUSE:
zypper in cmake extra-cmake-modules
- Deb:
-
Note on Boost library: you don’t need to install Boost library on your system, because citra provides a bundled trimmed Boost library. However, if you already have Boost library installed on your system, please make sure its version is at least 1.66 (which contains a bug fix for GCC 7), otherwise compilation would fail.
Cloning Citra in Git:
git clone --recursive https://github.com/citra-emu/citra
cd citra
The --recursive
option automatically clones the required Git submodules too.
Building Citra in Debug Mode (Slow):
Using gcc:
mkdir build
cd build
cmake ../
cmake --build . -- -j"$(nproc)"
sudo make install (optional)
- To enable HLE AAC Decoding, use
cmake .. -DENABLE_FFMPEG_AUDIO_DECODER=ON
instead.
Optionally, you can use “cmake -i ..” to adjust various options (e.g. disable the Qt GUI).
Using clang:
Note: It is important you use libc++, otherwise your build will likely fail:
mkdir build
cd build
cmake .. -DCMAKE_CXX_COMPILER=clang++-5.0 \
-DCMAKE_C_COMPILER=clang-5.0 \
-DCMAKE_CXX_FLAGS="-O2 -g -stdlib=libc++"
cmake --build . -- -j"$(nproc)"
sudo make install (optional)
Building Citra in Release Mode (Optimized):
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -- -j"$(nproc)"
sudo make install (optional)
- To enable HLE AAC Decoding, use
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_FFMPEG_AUDIO_DECODER=ON
instead.
Building with debug symbols:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build . -- -j"$(nproc)"
sudo make install (optional)
Running without installing:
After building, the binaries citra
, citra-qt
and citra-room
(depending on your build options) will end up in build/bin/
.
# SDL
cd build/bin/
./citra
# Qt
cd build/bin/
./citra-qt
# Dedicated room
cd build/bin/
./citra-room
Debugging:
cd data
gdb ../build/bin/citra-qt
(gdb) run
(gdb) bt
Install new Qt version
If your distribution’s version of Qt is too old, there are a few places you may be able to find newer versions.
-
This Ubuntu PPA contains backports of Qt 6 to various older versions: https://launchpad.net/~savoury1/+archive/ubuntu/qt-6-2
-
This unofficial CLI installer allows downloading and installing the latest first-party builds of Qt to your system (whether it works against your distribution may vary): https://github.com/miurahr/aqtinstall