Installer Code::Blocks et SDL2

Introduction

Cet article explique comment installer Code::Blocks et la bibliothèque SDL2 sur Windows.
J'espère que ça ne sera pas trop difficile de l'adapter à d'autres systèmes.

J'ai choisi Code::Blocks parce que c'est un IDE populaire. Mais si vous en préférez un autre, les projets Code::Blocks
sont de simples fichiers xml qui sont faciles à comprendre. De toute façon les seules choses importantes à ajouter
à votre projet sont les fichier sources et quelques fichiers lib pour le linker.

La SDL est une bibliothèque très légère qui permet d'utiliser des fonctionnalités avancées comme OpenGL sur de multiples
plateformes.
Je l'utiliserai principalement pour de petits programmes 2D au début mais je pourrais éventuellement faire de la 3D
à l'avenir.

Installer Code::Blocks

Allez à la page de téléchargement du site de Code::Blocks.


Cliquez sur "Download the binary release"


Et séléctionnez le fichier qui se termine par "mingw-setup.exe".
En plus de l'IDE, ça installera le compilateur C/C++ MinGW qui est une sorte de portage de GCC sous Windows.

Une fois que l'installation est terminée, il vous sera demandé si vous voulez lancer Code::Blocks.
Si vous le faites vous devriez voir cette fenêtre qui dit que Code::Blocks a scanné votre ordinateur et a défini
le compilateur MinGW comme compilateur GCC par défaut.

Installer la bibliothèque SDL

Allez à la page de téléchargement de la SDL 2.0.


Sélectionnez le fichier "mingw.tar.gz" dans la section "Development Libraries".
C'est une archive Unix que vous pouvez ouvrir avec un outil comme WinRAR.
En fonction de l'outil que vous utilisez, il faudra peut-être que vous l'ouvriez en 2 temps, parce que suivant
l'habitude d'Unix c'est une "double" archive qui est d'abord TARée puis GZippée.
Quoi qu'il en soit vous devriez tomber sur un dossier appelé "SDL2-x.x.x" (où le "x.x.x" est un numéro de version).
Copiez simplement ce dossier à l'endroit que vous voulez.

Maintenant il faut qu'on dise à Code::Blocks où trouver ces fichiers. En particulier, il aura besoin des fichiers
d'inclusion ".h", nécessaires pour définir les fonctions de la SDL pour le compilateur, et des fichiers ".a" pour
le linker.
Alors ouvrez Code::Blocks et allez dans le menu "Settings/Compiler".


Dans la fenêtre qui apparaît, sélectionnez l'onglet "Search directories".


Dans l'onglet "Compiler", ajoutez le chemin vers "i686-w64-mingw32\include\SDL2" qui est dans le répertoire où vous
avez copié la SDL.


Puis cliquez sur l'onglet "linker".


Et ajoutez le chemin vers "i686-w64-mingw32\lib"


Ce sont des paramètres globaux, alors vous n'aurez pas besoin de remettre ces chemins pour chaque projet que vous
créez.

Créer un nouveau projet

Pour créer un projet dans Code::Blocks vous pouvez soit cliquer sur le bouton "Create a new project" dans la page
d'accueil ou sélectionner le menu "File/New/Project".


Sélectionnez un projet vide (Empty project).


Choisissez un nom pour votre projet et le répertoire où il sera créé.


Code::Blocks va vous demander s'il doit créer des configurations "Debug" et "Release".
Appuyez juste sur "Finish".


Maintenant que notre projet est créé on va le configurer pour utiliser les libs SDL.
Faites un clic droit sur le nom de votre projet et sélectionnez "Build Options".


Dans la fenêtre qui apparaît, cliquez sur "Linker settings".


Cliquez sur le nom de votre projet à gauche, de cette façon les paramètres qu'on va ajouter seront mis à la fois
pour la configuration Debug et la configuration Release.


Et dans "Link libraries", ajoutez "libmingw32", "libSDL2main" et "libSDL2".
L'ordre est important. Si vous avez fait une erreur, vous pouvez déplacer les libs avec les flèches à droite.


Maintenant allez dans le répertoire "i686-w64-mingw32\bin" là où vous avez installé SDL.
Vous y trouverez un fichier "SDL2.dll".


Copiez-le dans le répertoire de votre projet. C'est à cet endroit que votre code sera exécuté quand vous le lancerez
depuis Code::Blocks.
Si par la suite vous voulez lancer votre code en double-cliquant sur son ".exe", assurez-vous de copier la dll dans
le même répertoire.

Maintenant, ajoutons du code à notre projet et essayons de compiler pour voir si tout a bien été configuré
Selectionnez le menu "File/New/Empty file" pour créer un nouveau fichier vide.


Code::Blocks vous demande si vous voulez ajouter ce fichier à votre projet. Répondez juste "oui".


Appelez ce fichier "main.cpp".


Code::Blocks demande à quelles configurations il doit ajouter ce fichier.
Laissez tout coché et cliquez sur "OK".


Finalement "main.cpp" est ajouté à votre projet. Tapez-y ce simple exemple
		#include "SDL.h"
		#include 

		int main(int argc, char* argv[])
		{
			SDL_Window *window;

			SDL_Init(SDL_INIT_VIDEO);

			window = SDL_CreateWindow(
				"Test",
				SDL_WINDOWPOS_UNDEFINED,
				SDL_WINDOWPOS_UNDEFINED,
				640,
				480,
				SDL_WINDOW_SHOWN
			);

			SDL_Delay(3000);

			SDL_DestroyWindow(window);
			SDL_Quit();
			return 0;
		}
				
Vous pouvez aussi le télécharger ici.

Maintenant regardez la première barre d'outils en haut de l'écran. Vous y verrez un bouton qui vous permet de
choisir si vous compilez votre code en Debug ou en Release.


Pour ce petit exemple, vous pouvez le laisser sur "Debug" parce qu'on n'aura pas besoin de performances optimales.
A gauche de ce bouton, vous devriez voir un triangle vert avec un engrenage derrière lui.


Cliquez sur ce bouton. Si vous avez bien suivi toutes les étapes de ce guide, le code devrait se compiler sans
erreur.
Puis vous devriez voir apparaitre une fenêtre "Test" qui restera 3 secondes, avant de disparaître.

Félicitations, vous venez juste de créer votre premier programme SDL !