Ce tutoriel part du principe que vous avez créé sous Linux un jeu en C en utilisant la librairie SDL2 et que vous voulez créer un .exe pour permettre au grand public d'y jouer.
MinGW est un compilateur de C pour Windows. Après installation, vous pourrez taper gcc
dans un terminal cmd.
Téléchargez ce logiciel : http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download.
Lancez le fichier téléchargé (mingw-w64-install.exe
).
Cliquez une première fois sur "next".
ATTENTION : avant de cliquer à nouveau sur "next", sélectionnez x86_64
en Architecture, cela permettra de compiler en 64 bits plutôt que 32.
Retenez le chemin d'installation et cliquez sur "next" pour lancer l'installation... et patientez.
Ouvrez le chemin choisi avec l'explorateur de fichier (par exemple C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0
). Ouvrez le dossier mingw64
puis le dossier bin
et enfin, copiez le chemin dans la barre d'adresse.
Dans l'explorateur de fichiers, faites un clic droit sur "Ce PC" puis "Propriétés" puis "Paramètres système avancés" puis "Variables d'environnement".
Double-cliquez sur "Path" puis "Nouveau" et collez le chemin précédemment copié (par exemple C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
) sur la nouvelle ligne. Validez tout et fermez les paramètres.
Et voilà vous avez installé gcc, ce qui se fait en une seule commande avec Linux (sudo apt install build-essential
).
Spoiler : ça n'est pas plus simple que l'étape précédente.
x86_64-w64-mingw32
et copiez les sous-dossiers bin
, lib
et include
dans le répertoire contenant le code source de votre jeu.Si vous utilisez des extensions comme SDL_image
, SDL_ttf
, SDL_mixer
... il vous faudra aller sur le site de chaque projet (https://www.libsdl.org/projects/SDL_image/ par exemple pour SDL_image) et télécharger les Development Libraries pour Windows et MinGW puis copiez le contenu du sous-dossier x86_64-w64-mingw32/bin
, dans le dossier bin
créé précédemment, le contenu de x86_64-w64-mingw32/lib
, dans le dossier lib
créé précédemment et le contenu de x86_64-w64-mingw32/include
, dans le include
créé précédemment.
Encore une fois, il faut savoir que tout ce bazar se fait en une seule commande avec Linux : sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev
.
bin
, lib
et include
. Faites un clic droit en maintenant la touche shift enfoncée et cliquez sur "Ouvrir la fenêtre PowerShell ici".-I include -L lib -mwindows -lmingw32 -lSDL2main
(par exemple : gcc game.c -I include -L lib -mwindows -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf -o bin/game
). ATTENTION, l'ordre des flags a de l'importance ! Si vous obtenez de drôles d'erreurs, réessayez en mettant -mwindows -lmingw32
avant les autres flags.bin
et placez-y également tous les fichiers nécessaires à l'exécution du jeu (images, sons, polices, fichiers de configuration...).bin
(le .exe, les dll et les fichiers du jeu).J'espère que cela vous a permis de constater à quel point Windows est mal fichu et pourquoi il est plus simple d'utiliser Linux 😉