Aller au contenu

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) :

$(CXX) $(CXXFLAGS) -o $@ $^ -lraylib -lGL -lm -lpthread -ldl -lrt -lX11

Trois conséquences importantes :

  1. Le projet ne fournit pas Raylib. Il n'y a ni sous-module Git, ni FetchContent, ni find_package, ni pkg-config, ni copie de libraylib/des en-têtes dans le dépôt. Le compilateur s'attend à trouver raylib.h et libraylib.so déjà installés sur la machine.
  2. Le link est de style Linux. Les bibliothèques -lGL -lX11 -lrt -ldl trahissent une cible Linux/X11 (voir la section Windows plus bas).
  3. 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.

sudo apt install -y libraylib-dev   # tenter d'abord le paquet de la distro

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 :

sudo pacman -S --needed base-devel git cmake raylib

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 :

brew install raylib

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.

  1. Installer WSL2 + Ubuntu :

    wsl --install -d Ubuntu
    
  2. 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 :

cd raylib/src
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED
sudo make install RAYLIB_LIBTYPE=SHARED
sudo ldconfig

Vérifier l'installation

1. La bibliothèque est-elle visible par l'éditeur de liens ?

ldconfig -p | grep raylib

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 :

cc raylib_check.c -o raylib_check -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
./raylib_check

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).