Vous êtes sur la page 1sur 16

TP: Installation de la SDL (site du zero : http://www.siteduzero.

com):

1/ Extraction des fichiers de la SDL

Ouvrez le fichier compress de "Development Libraries" que vous avez tlcharg. Ce fichier est un .zip pour Visual et un .tar.gz pour mingw32 (il vous faudra un logiciel comme Winrar ou 7-Zip pour dcompresser le .tar.gz). Le fichier compress contient plusieurs sous-dossiers. Ceux qui nous intressent sont les suivants :

bin : contient la .dll de la SDL docs : contient la documentation de la SDL include : contient les .h lib : contient les .a (ou .lib pour visual)

Vous devez extraire tous ces fichiers et dossiers quelque part sur votre disque dur. Vous pouvez par exemple les placer dans le dossier de Code::Blocks, dans un sous-dossier "SDL" :

Le dossier de la SDL contenant tous les fichiers a t surlign Dans mon cas, la SDL sera installe dans le dossier : C:\Program Files\CodeBlocks\SDL-1.2.13 Retenez bien le nom du dossier dans lequel vous l'avez installe, vous allez en avoir besoin pour configurer Code::Blocks. Maintenant, il va falloir faire une petite manipulation pour simplifier la suite. Allez dans le sous-dossier include/SDL (dans mon cas, il se trouve dans C:\Program Files\CodeBlocks\SDL-1.2.13\include\SDL). Vous devriez voir plein de petits fichiers .h. Copiez-les dans le dossier parent, c'est--dire dans C:\Program Files\CodeBlocks\SDL-1.2.13\include. Faites un copier / coller, ce sera le plus simple. Je veux que tous les fichiers .h soient donc aussi placs dans C:\Program Files\CodeBlocks\SDL-1.2.13\include, c'est important pour la suite. Voil la SDL est installe

2/ Cration du projet SDL

Ouvrez maintenant Code::Blocks et demandez crer un nouveau projet. L, au lieu de crer un projet "Console Application" comme vous aviez l'habitude de faire, vous allez demander crer un projet "SDL project". La premire fentre de l'assistant qui apparat ne sert rien, faites "Next". On vous demande ensuite le nom de votre projet et le dossier dans lequel il doit tre plac, comme vous l'avez toujours fait.

Vient ensuite la partie o vous devez indiquer o se trouve installe la SDL :

Cliquez sur le bouton "..." droite. Une nouvelle fentre un peu complexe s'ouvre :

Vous devez simplement remplir le champ que j'ai surlign : "base". Indiquez le dossier o vous avez dcompress la SDL. Dans mon cas, c'est : C:\Program Files\CodeBlocks\SDL1.2.13 Cliquez sur Close. Une nouvelle fentre apparat. C'est une fentre-pige (dont je n'ai pas compris l'intrt ) qui sert juste vous embrouiller. Elle vous demande un dossier. Cliquez sur "Annuler" pour ne rien faire :

Cliquez ensuite sur "Next" dans l'assistant, puis choisissez de compiler en mode "Release" ou "Debug" (peu importe) et enfin faites "Finish". Code::Blocks va crer un petit projet SDL de test comprenant un main.c et un fichier .bmp. Avant d'essayer de le compiler, copiez la DLL de la SDL (C:\Program Files\CodeBlocks\SDL-1.2.13\bin\SDL.dll) dans le dossier de votre projet (ex. : C:\Users\Mateo\Projets\testsdl). Essayez ensuite de compiler : une fentre avec une image devrait s'afficher. Bravo, a fonctionne ! Si on vous dit "Cette application n'a pas pu dmarrer car SDL.dll est introuvable", c'est que vous n'avez pas copi le fichier SDL.dll dans le dossier de votre projet ! Il faudra penser fournir cette .dll en plus de votre .exe vos amis si vous voulez qu'ils puissent excuter le programme eux aussi. En revanche, vous n'avez pas besoin de leur filer les .h, .a et tout le tintouin Vous pouvez supprimer le .bmp du programme, on n'en aura pas besoin. Quant au fichier main.c, il est un peu long, on ne va pas dmarrer avec a. Supprimez tout son contenu, et remplacez-le par : Code : C
1 2 3 4 5 6 7 #include <stdlib.h> #include <stdio.h> #include <SDL/SDL.h> int main(int argc, char *argv[]) {

8 9}

return 0;

C'est en fait un code de base trs similaire ceux que l'on connat (un include de stdlib, un autre de stdio, un main...). La seule chose qui change, c'est l'include d'un fichier SDL.h. C'est le fichier .h de base de la SDL qui se chargera d'inclure tous les autres fichiers .h de la SDL. Bref, en incluant SDL.h, cela inclue automatiquement tous les fichiers .h ncessaires au bon fonctionnement de la SDL (et il y en a plein !).

Cration d'un projet SDL sous Visual C++

1/ Extraction des fichiers de la SDL

Sur le site de la SDL, tlchargez la dernire version de la SDL. Dans la section "Development Libraries", prenez la version pour Visual C++ 2005 Service Pack 1. Ouvrez le fichier zip. Il contient la doc (dossier docs), les .h (dossier include), et les .lib (dossier lib) qui sont l'quivalent des .a pour le compilateur de Visual. Vous trouverez aussi le fichier SDL.dll dans ce dossier lib.

Copiez SDL.dll dans le dossier de votre projet Copiez les .lib dans le dossier lib de Visual C++. Par exemple chez moi il s'agit du dossier : C:\Program Files\Microsoft Visual Studio 8\VC\lib Copiez les .h dans le dossier "includes" de Visual C++. Crez un dossier "SDL" dans ce dossier "includes" pour regrouper les .h de la SDL entre eux. Chez moi, je mets donc les .h dans le dossier : C:\Program Files\Microsoft Visual Studio 8\VC\include\SDL

2/ Cration d'un nouveau projet SDL

Sous Visual C++, crez un nouveau projet de type "Application console Win32" :

Appelez votre projet "testsdl" par exemple. Cliquez sur OK. Un assistant va s'ouvrir. Allez dans "Paramtres de l'application" et vrifiez que "Projet vide" est coch :

Le projet est alors cr. Il est vide. Ajoutez-y un nouveau fichier en faisant un clic droit sur "Fichiers sources", "Ajouter" / "Nouvel lment".

Dans la fentre qui s'ouvre, demandez crer un nouveau fichier de type "Fichier C++ (.cpp)" que vous appellerez "main.c". En mettant l'extension .c dans le nom du fichier, Visual crera

un fichier .c et non un fichier .cpp. Mettez le code "de base" dans votre nouveau fichier vide : Code : C
1 2 3 4 5 6 7 8 9 #include <stdlib.h> #include <stdio.h> #include <SDL/SDL.h> int main(int argc, char *argv[]) { return 0; }

3/ Configuration du projet SDL sous Visual C++

La configuration du projet est un peu plus dlicate que pour Code::Blocks, mais y'a pas mort d'homme je vous rassure Allez dans les proprits de votre projet : "Projet" / "Proprits de testsdl".

Dans la section "C / C++ => Gnration de code", mettez "Bibliothque runtime" "DLL multithread (/MD)" Dans la section "C/C++ => Avanc", slectionnez "Compilation sous" et mettez la valeur "Compiler comme code C (/TC)" (sinon visual vous compilera votre projet comme tant du C++). Dans la section "Editeur de liens => Entre", modifiez la valeur de "Dpendances supplmentaires" pour y ajouter "SDL.lib SDLmain.lib" Dans la section "Editeur de liens => Systme", modifiez la valeur de "Sous-systme" et mettez-la "Windows" (capture ci-dessous).

Validez ensuite vos modifications en cliquant sur OK et enregistrez le tout. Vous pouvez maintenant compiler en allant dans le menu "Gnrer / Gnrer la solution". Rendez-vous dans le dossier de votre projet pour y trouver votre excutable (il sera peut-tre dans un sous-dossier Debug). N'oubliez pas que le fichier SDL.dll doit se trouver dans le mme dossier que l'excutable. Double-cliquez sur votre .exe : si tout va bien, il ne devrait rien se passer. Sinon, s'il y a une erreur c'est probablement que le fichier SDL.dll ne se trouve pas dans le mme dossier

Cration d'un projet SDL avec Xcode (Mac OS)

Cette section a t rdige par guimers8 Commencez par tlcharger la version de la SDL sur le site officiel : c'est le fichier qui porte l'extension dmg dans la section Runtime Libraries . Montez (chargez) ce fichier, prenez le dossier SDL.framework et placez-le dans le dossier : <Racine Disque>/Library/Frameworks. Si votre systme est en franais, il est probable que vous voyiez : <Racine Disque>/Bibliothque/Frameworks Le dossier SDL.framework contient tout les fichiers ncessaires au bon fonctionnement de la

SDL, dont les binaires et les headers. Vous obtenez donc ceci :

Les frameworks dans leur dossier : vous pouvez voir notamment SDL.framework. Il vous faut prsent tlcharger le fichier dmg qui se trouve dans la section Development Libraries . Montez le fichier, et dans le dossier XcodeTemplates, copiez le contenu du dossier correspondant votre version de Mac OS X dans <Racine Disque>/Developer/Library/Xcode/Project Templates/Application, comme le montre cette capture d'cran :

L'assistant de cration de nouveau projet de Xcode vous proposera alors de crer une SDL Application :

Et voil votre projet est cr.

Et sous Linux ?

Si vous compilez sous Linux avec un IDE, il faudra modifier les proprits du projet (la manipulation sera quasiment la mme). Si vous utilisez Code::Blocks, qui existe aussi en version Linux, vous pouvez suivre la mme procdure que celle que j'ai dcrite plus haut ! Et pour ceux qui compilent la main ? Il y en a peut-tre parmi vous qui ont pris l'habitude de compiler la main sous Linux l'aide d'un Makefile (fichier commandant la compilation). Si c'est votre cas, voici un Makefile que vous pouvez utiliser pour compiler des
projets SDL

La seule chose particulire c'est l'ajout de la bibliothque SDL pour le linker (LDFLAGS). Il faudra que vous ayez tlcharg la SDL version Linux et que vous l'ayez installe dans le dossier de votre compilateur, de la mme manire qu'on le fait sous Windows (dossiers include\SDL et lib) Ensuite, vous pourrez taper dans la console : Code : Console
make #Pour compiler le projet make clean #Pour effacer les fichiers de compilation (les .o inutiles) make mrproper #Pour tout supprimer sauf les fichiers source

A la fin de ce chapitre, vous devriez donc avoir tlcharg et install la SDL dans le rpertoire de votre compilateur. Vous devez tre capables de crer un projet SDL configur comme il faut avec votre IDE favori les yeux ferms L'idal serait mme que vous soyez capables de le faire pour les 3 IDE prsents ici. Dans le prochain chapitre nous ferons nos premiers pas en SDL, avec en particulier l'ouverture d'une fentre ! Ca fait longtemps que vous attendez a hein ?

D'autres bibliothques ?

Nous allons donc ds le chapitre suivant commencer tudier ensemble la SDL et dcouvrir comment elle fonctionne. Toutefois, peut-tre qu'il y en a parmi vous qui ne veulent pas apprendre la SDL (bon a a serait dommage) ou qui aimeraient aussi connatre d'autres bibliothques. Ce que je vous conseillerais ce serait dans tous les cas de travailler la SDL avec moi, a vous fera de la pratique et vous aurez au moins acquis de l'exprience sur une bibliothque. Aprs, si vous le voulez, vous pourrez essayer d'apprendre par vous-mmes une autre bibliothque crite en langage C. En effet, sachez qu' votre niveau vous pouvez thoriquement utiliser n'importe quelle bibliothque crite en C, pour peu que vous trouviez des tutoriaux pour vous aider dmarrer Vous savez que je ne pourrai pas vous expliquer ces bibliothques (j'ai fait le choix de la SDL), mais je peux au moins vous indiquer le chemin si vous voulez commencer apprendre tous seuls Voici quelques bibliothques assez connues qui vous intresseront probablement :

GTK+ : c'est une bibliothque de fentres multiplateforme. Elle a t cre au dpart uniquement pour le logiciel de dessin The Gimp, puis elle a t tendue et amliore pour tre utilisable par d'autres programmes.

Contrairement la SDL qui ne permet pas de crer des boutons et de menus (enfin c'est possible mais il faut les simuler c'est un peu dlicat) et qui est plutt adapte pour les jeux, GTK+ vous propose tout a. C'est une bibliothque sous license LGPL aussi, donc vous tes libres de distribuer vos programmes comme vous le voulez. La particularit de GTK+ est que les fentres ont une apparence bien particulire. Voici un screenshot d'une fentre GTK+ :

Une fentre GTK+ (merci KaZu pour le screenshot

Vos fentres auront donc une apparence diffrente des fentres habituelles de votre OS (enfin sauf pour ceux qui sont sous Gnome sous Linux ). Pour que vos applications faites en GTK+ fonctionnent sur l'ordinateur de vos utilisateurs, il faudra qu'ils installent au pralable un programme appel le runtime GTK+ (ce qui n'est pas trs pratique mon got).

Ceci mis part, c'est une bonne bibliothque graphique de cration de fentres. Si cela vous tente, vous trouverez un bon tutorial sur http://www.gtk-fr.org pour dmarrer

API Win32 : c'est la bibliothque de cration de fentres de Windows. Le dfaut est que votre programme ne fonctionnera que sous Windows, l'avantage est que... ben en utilisant cette bibliothque vous pouvez crer de vritables programmes Windows en fentres comme ceux que vous avez l'habitude d'utiliser tous les jours (si vous tes sous Windows). En outre, vous n'aurez aucune DLL livrer (ou aucun runtime installer comme c'est le cas pour GTK+) : logique, car ceux-ci sont automatiquement installs avec Windows. Vous trouverez un bon tutorial cette adresse : http://bob.developpez.com/tutapiwin/ L'API Win32 est crite en C, mais il faut savoir aussi qu'il existe une bibliothque appele la MFC (Microsoft Foundation Classes, donc aussi cre par Microsoft) qui vous permet de programmer en C++. Tout dpend du langage que vous souhaitez utiliser. A votre niveau de toute faon c'est sur l'API Win32 qu'il faut vous pencher vu que vous ne connaissez pas le C++. La MFC n'est pas plus puissante que l'API Win32 (je vous avais dj dit que c'est pas parce que c'est du C++ que c'est mieux ), elle permet juste de crer votre programme d'une manire diffrente.

Voil, ce n'est qu'une petite liste (vraiment trs petite). Ce sont des suggestions de bibliothques que vous pouvez apprendre si vous le dsirez. Encore une fois j'insiste : je vous recommande dans un premier temps d'tudier la SDL avec moi, pour vous faire les crocs. Une fois que vous serez bien affams et que vous aurez dvor la SDL toute crue, vous serez plus aptes vous lancer tous seuls dans l'tude d'une de ces bibliothques