Installation de Raylib¶
Le client graphique dépend de Raylib, mais ne l'embarque pas. C'est la première
chose à mettre en place avant tout make. Cette page explique pourquoi, puis donne
des instructions vérifiées système par système.
Comment le projet utilise Raylib¶
Le GUI lie Raylib dynamiquement depuis une installation système. La règle de
link du Makefile est explicite (gui/Makefile:31) :
Trois conséquences importantes :
- Le projet ne fournit pas Raylib. Il n'y a ni sous-module Git, ni
FetchContent, nifind_package, nipkg-config, ni copie delibraylib/des en-têtes dans le dépôt. Le compilateur s'attend à trouverraylib.hetlibraylib.sodéjà installés sur la machine. - Le link est de style Linux. Les bibliothèques
-lGL -lX11 -lrt -ldltrahissent une cible Linux/X11 (voir la section Windows plus bas). - Un pilote OpenGL est requis. Raylib s'appuie sur OpenGL, et le shader de
recoloration d'équipe cible GLSL
#version 330(gui/assets/shaders/recolor.frag:1). Il faut donc un pilote capable d'OpenGL 3.3 / GLSL 330.
Version de Raylib non figée
Le projet n'épingle aucune version de Raylib — ni dans le Makefile, ni dans
la documentation, ni dans le binaire. N'importe quelle version récente
devrait convenir (l'API utilisée — InitWindow, DrawBillboardRec,
LoadShader, rlDrawRenderBatchActive… — est stable depuis longtemps), mais ce
point reste une zone d'incertitude. Si vous rencontrez une erreur de symbole au
link, privilégiez la compilation depuis les sources (ci-dessous). Voir aussi
Limitations connues.
Installation par système¶
1. Installer les dépendances de build et les bibliothèques de développement X11/OpenGL/audio. Ce sont les paquets dont Raylib a besoin pour se construire et se lier.
sudo apt update
sudo apt install -y \
build-essential git cmake \
libasound2-dev \
libgl1-mesa-dev \
libx11-dev libxrandr-dev libxi-dev \
libxcursor-dev libxinerama-dev \
libwayland-dev libxkbcommon-dev
Pourquoi ces paquets ?
libgl1-mesa-dev apporte les en-têtes OpenGL et le pilote Mesa ; la série
libx11/libxrandr/libxi/libxcursor/libxinerama couvre la gestion de fenêtre
X11 ; libwayland-dev + libxkbcommon-dev couvrent Wayland ;
libasound2-dev (ALSA) couvre l'audio.
2. Le paquet libraylib-dev de la distribution peut convenir… ou pas.
Sur de nombreuses distributions ce paquet est absent ou trop ancien (Raylib n'est arrivé que tardivement dans les dépôts officiels). En cas de doute ou d'erreur au link, passez directement à la compilation depuis les sources, qui est le chemin fiable.
sudo dnf install -y \
gcc-c++ git cmake \
alsa-lib-devel mesa-libGL-devel \
libX11-devel libXrandr-devel libXi-devel \
libXcursor-devel libXinerama-devel \
wayland-devel libxkbcommon-devel
# Paquet Raylib (si disponible) :
sudo dnf install -y raylib-devel
Si raylib-devel est indisponible ou trop ancien, compilez depuis les sources
(onglet dédié).
Arch fournit un paquet Raylib à jour, c'est le chemin le plus simple :
Le paquet raylib installe la bibliothèque partagée et les en-têtes ; rien
d'autre n'est requis dans la plupart des cas.
Avec Homebrew :
Link de style Linux
Le Makefile du projet (gui/Makefile:31) référence -lGL -lX11 -lrt qui
n'existent pas tels quels sous macOS (qui utilise les frameworks OpenGL /
Cocoa). Compiler le GUI tel quel sur macOS échouera probablement au
link sans adapter la ligne de link. Sur macOS, préférez exécuter le GUI
depuis une machine ou une VM Linux. Voir Limitations
connues.
La méthode recommandée est WSL2 (Ubuntu) : le Makefile cible un link X11, ce qui correspond exactement à l'environnement Linux de WSL2.
-
Installer WSL2 + Ubuntu :
-
Dans le terminal Ubuntu obtenu, suivre l'onglet Linux (Debian/Ubuntu) ci-dessus (un serveur X est nécessaire ; WSLg, intégré aux versions récentes de Windows 11, en fournit un).
Alternative : MSYS2 (pacman -S mingw-w64-x86_64-raylib) est possible mais
demande d'adapter la ligne de link (pas de -lX11/-lrt natifs Windows). Le
Makefile du projet vise Linux : MSYS2 n'est pas un chemin testé ici.
Compiler Raylib depuis les sources (le chemin fiable)¶
C'est la méthode recommandée dès que le paquet de la distribution manque, est trop
ancien, ou provoque une erreur de link. On construit une bibliothèque partagée
(-DBUILD_SHARED_LIBS=ON) afin de rester cohérent avec le link dynamique
-lraylib du projet.
git clone https://github.com/raysan5/raylib.git
cd raylib
cmake -S . -B build -DBUILD_SHARED_LIBS=ON
cmake --build build -j$(nproc)
sudo cmake --install build
sudo ldconfig # met à jour le cache de l'éditeur de liens dynamique
À quoi sert ldconfig ?
sudo make install (ou cmake --install) dépose libraylib.so dans
/usr/local/lib. sudo ldconfig rafraîchit le cache afin que l'éditeur de
liens et le chargeur dynamique trouvent la bibliothèque à la compilation et
à l'exécution. Sans cela, vous pourriez voir
error while loading shared libraries: libraylib.so au lancement.
Variante make classique
Le dépôt Raylib supporte aussi un build Makefile direct :
Vérifier l'installation¶
1. La bibliothèque est-elle visible par l'éditeur de liens ?
Vous devez voir une ligne du type libraylib.so ... => /usr/local/lib/libraylib.so.
Si rien ne s'affiche, relancez sudo ldconfig, ou vérifiez le chemin
d'installation.
2. Compiler un mini-programme témoin. Créez raylib_check.c :
#include "raylib.h"
int main(void)
{
InitWindow(320, 240, "raylib check");
CloseWindow();
return 0;
}
Compilez-le avec exactement les mêmes bibliothèques que le projet :
Si la compilation aboutit et que le programme se termine sans erreur, Raylib est correctement installé et lié — vous pouvez passer au build du GUI.
Erreur OpenGL au lancement ?
Si ./raylib_check se ferme avec une erreur de contexte OpenGL, votre pilote ne
fournit pas OpenGL 3.3 / GLSL 330. C'est fréquent en VM sans accélération
graphique ; activez l'accélération 3D, installez les pilotes Mesa, ou utilisez
une machine avec GPU. Sans GLSL 330, le shader de recoloration d'équipe ne se
chargera pas (voir Rendu graphique).