PCSX2 Documentation/Compiling on Linux: Difference between revisions
Jump to navigation
Jump to search
PCSX2 Documentation/Compiling on Linux (view source)
Revision as of 11:28, 26 January 2022
, 26 January 2022Should also init submodules from all recursive submodules.
Lucasmnovais (talk | contribs) m (Should also init submodules from all recursive submodules.) |
|||
(8 intermediate revisions by one other user not shown) | |||
Line 40: | Line 40: | ||
====Fedora==== | ====Fedora==== | ||
It is important to note that you do not need to install <code>gcc-c++.i686</code>. Installing this package could | It is important to note that you do not need to install <code>gcc-c++.i686</code>. Installing this package could lead to some packages being downgraded, resulting in a broken g++ compiler. | ||
The required packages to compile PCSX2 can be installed with: | The required packages to compile PCSX2 can be installed with: | ||
<code># dnf install gcc-g++ glibc-devel.i686 libstdc++-devel.i686</code> | <code># dnf install gcc-g++ cmake glibc-devel.i686 libstdc++-devel.i686</code> | ||
==Installing the Dependencies== | ==Installing the Dependencies== | ||
PCSX2 relies on a number of 3rd party software libraries, so you are going to need to obtain those before you can compile the source code. | PCSX2 relies on a number of 3rd party software libraries, so you are going to need to obtain those before you can compile the source code. Here's a non-exhaustive list of these dependencies. | ||
<source lang="bash"> | <source lang="bash"> | ||
Line 61: | Line 61: | ||
lib32-wxgtk3 | lib32-wxgtk3 | ||
lib32-soundtouch | lib32-soundtouch | ||
lib32-libpcap | |||
lib32-zlib | |||
lib32-libsamplerate | |||
sparsehash | sparsehash | ||
fmt | |||
</source> | </source> | ||
When generating the build configuration, CMake will first attempt to use pre-bundled versions of some of these packages to ensure PCSX2 is built against the most suitable version of its dependencies. | |||
In order to install these pre-packaged dependencies, run the following commands at the top-level directory of the PCSX2 git repository you just cloned | |||
<source> | |||
$ cd ./pcsx2 | |||
$ git submodule --init --recursive | |||
$ mkdir -p ./build && cd ./build | |||
</source> | |||
Please note you may still need to install 32-bit versions of some of these libraries yourself. | |||
===Fedora=== | ===Fedora=== | ||
To obtain all the required dependencies for 32-bit compile on Fedora | To obtain all the required dependencies for 32-bit compile on Fedora, reference their <code>i686</code> architecture version, like so: | ||
< | <pre> | ||
xz-devel.i686 mesa-libGL-devel.i686 libpng-devel.i686 libaio-devel.i686 systemd-devel.i686 | # dnf install alsa-lib-devel.i686 libpcap-devel.i686 libxml2-devel.i686 freetype-devel.i686 \ | ||
portaudio-devel.i686 soundtouch-devel.i686 SDL2-devel.i686 harfbuzz-devel.i686 wxGTK3-devel.i686 | xz-devel.i686 mesa-libGL-devel.i686 libpng-devel.i686 libaio-devel.i686 systemd-devel.i686 \ | ||
portaudio-devel.i686 soundtouch-devel.i686 SDL2-devel.i686 harfbuzz-devel.i686 wxGTK3-devel.i686 \ | |||
</ | gtk3.i686 gtk3-devel.i686 glib2-devel.i686 libsamplerate.i686 libsamplerate-devel.i686 gdk-pixbuf2-devel.i686 | ||
</pre> | |||
Note: this list of dependencies was last verified on a Fedora 33 (x86_64) installation. | |||
==Compiling the Source== | ==Compiling the Source== | ||
Line 88: | Line 106: | ||
$ sh build.sh | $ sh build.sh | ||
</source> | </source> | ||
If omit any of the libraries or headers specified above (or other, newer dependencies not included here), CMake will abort, your compiler may skip certain parts of the overall build or the linker may fail to link all the dependencies into the final PCSX2 executable. The output from any one of these tools should be able to tell the dependencies you're missing. | |||
==Running the Binary== | ==Running the Binary== | ||
This process may take several minutes. Once it has finished, you should be able to run the pcsx2 binary | This process may take several minutes. Once it has finished, you should be able to run the pcsx2 binary, which should've been output to the <code>bin/</code> directory. | ||
<source lang="bash">$ ./bin/ | |||
<source lang="bash">$ ./bin/PCSX2</source> | |||
The most straightforward to invoke the PCSX2 binary is via the Linux wrapper script provided in the same folder, which should be run from the top-level directory: | |||
<source lang="bash"> | |||
$ chmod +x ./bin/PCSX2-linux.sh | |||
$ ./bin/PCSX2-linux.sh | |||
</source> | |||
==Additional external links== | ==Additional external links== |