Compiler la SFML - Qu3tzal/meuporg GitHub Wiki
Compiler la SFML
Lors du développement, il est important d'avoir des binaires qui soient compilés exactement avec le même compilateur que l'exécutable (meuporg-royale-client
ou meuporg-royale-server
). Cette obligation nous laisse deux solutions :
- soit utiliser le même compilateur que celui utilisé par ceux qui ont compilé la SFML pour nous (voir le site de la SFML)
- soit recompiler la SFML
Nous choisirons de recompiler la SFML afin de se garder la possibilité d'utiliser des compilateurs pour les plateformes de notre choix ainsi que pour utiliser des versions de C++ récentes (C++14/17 bientôt 20).
Au menu
Afin de compiler la SFML nous allons suivre un certain nombre d'étapes :
- Récupérer les sources de la SFML
- Générer un fichier Makefile
- Compiler la SFML
Nous aurons besoin des outils suivants : git
, cmake
, make
et g++
Pour les installer si besoin :
- Sous linux :
sudo apt-get update && sudo apt-get install -y git cmake build-essential g++
- Sous Windows :
git
est fourni avec l'application desktop de Github, CMake se télécharge ici etmake
etg++
sont fournis avec MinGW (mingw32-make
etg++
dansmingw32/bin/
Au travail (Linux)
On commence par se créer un dossier de travail :
mkdir meuporg-royale
La SFML ne fournit pas les bibliothèque dont elle dépend sur Linux, nous devons donc les installer nous même. Voici une ligne de commande permettant d'installer ces dépendances :
- sous Debian 9 :
sudo apt-get install -y libpthread-stubs0-dev libgl1-mesa-dev libx11-dev libxrandr-dev libfreetype6-dev libglew1.5-dev libudev-dev libjpeg62-turbo-dev libsndfile1-dev libopenal-dev
- sous Ubuntu 14 :
sudo apt-get install -y libpthread-stubs0-dev libgl1-mesa-dev libx11-dev libxrandr-dev libfreetype6-dev libglew1.5-dev libudev-dev libjpeg8-dev libjpeg-turbo8-dev libsndfile1-dev libopenal-dev
Ensuite on clone le repository de la SFML :
git clone https://github.com/SFML/SFML.git
cd SFML
On va maintenant compiler la SFML en mode debug :
cmake . -DCMAKE_BUILD_TYPE=Debug && make
Puis en mode release :
cmake . -DCMAKE_BUILD_TYPE=Release && make
Pour utiliser notre version de la SFML il suffit maintenant d'indiquer au moment de la compilation de notre projet, où elle se situe. Par exemple, avec cmake
cela se fait ainsi :
include_directories(chemin/vers/la/SFML/include)
link_directories(chemin/vers/la/SFML/lib)
target_link_libraries(my-project sfml-system-d sfml-window-d sfml-graphics-d sfml-network-d sfml-audio-d)
Au travail (Windows)
A venir