Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Comment installer SDL 2.0 sur Code::Blocks (Windows)

Par Jayson GALANTE Publié le 18/10/2015 à 20:30:41 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

SDL est une librairie Multiplate-forme permettant de créer des programmes en interface graphique. Sa particularité est qu’elle est simple d'utilisation pour débuter, flexible et open-source donc modifiable à volonté. Cette librairie a été écrite en C mais peut être utilisée par de nombreux langages informatique. Nous allons vous montrer comment installer cette librairie sur Code::Blocks qui est un environnement de développement open-source pour développer du C/C++, puis comment créer une fenêtre en SDL 2.0 en langage C.

Prérequis

Afin de réaliser les étapes qui vont suivre, il vous faut :

Préparation des fichiers

Une fois que vous avez installé Code :: Blocks dans votre système et téléchargez les dossiers compressés nécessaires pour SDL, extraire les dossiers et vous obtiendrez les dossiers ci-dessous :

Maintenant, allez dans le dossier Code::Blocks (pour ma part, il se situe dans Program Files (x86)) :

Mettre le dossier SDL2-2.0.3 à la racine du dossier Code::Blocks:

En ouvrant le dossier SDL2-2.0.3 il y a plusieurs dossiers à l’intérieur. Parmi eux, seuls deux dossiers sont utilisables dans Code :: Blocks :

  • I686-w64-mingw32

  • X86-64-w64-mingw32

La différence entre ces deux dossiers sont que le dossier i686 est fait pour développer des programmes destinés aux ordinateur ayant un processeur 32-bit tandis que X86-64 pour développer des programmes destinés aux ordinateur ayant un processeur 64-bit. Il est donc indispensable de bien choisir son dossier en fonction de l’ordinateur que vous avez et celui de votre client.

Maintenant, on va rajouter des fichiers au dossier de votre choix (i686 ou x86_x64), afin qu'on puisse:

  • rajouter des images autre que le format BMP dans votre interface graphique (SDL_image)

  • rajouter du texte dans votre interface graphique (SDL_ttf)

  • rajouter de la musique dans votre programme (SDL_mixer)

Pour cela, il faut fusionner les dossier de SDL_(image, ttf ou mixer) avec les dossiers de SDL2-2.0.3 (i686 ou x86_64):

  • le dossier bin

  • le dossier lib

  • le dossier include

  • le dossier pkgconfig à l'intérieur du dossier lib

Copier le contenu des dossiers bin et "include\SDL2\" du dossier SDL_image dans ceux du dossier "SDL2-2.0.3\dossier_architecture_de_votre_choix" dans Code::Blocks :

Ensuite, copier le contenu des dossiers lib et pkgconfig du dossier SDL_image dans ceux du dossier "SDL2-2.0.3\dossier_architecture_de_votre_choix" dans Code::Blocks :

Il faut ensuite faire la même chose pour SDL_ttf et SDL_mixer.

Maintenant que tous les fichiers sont prêts, passons à la configuration de Code::Blocks.

Configuration dans Code::Blocks

Pour pouvoir utiliser SDL dans Code::Blocks, il reste quelques configuration à effectuer. Tout d'abord il faut ouvrir le logiciel Code::Blocks. Vous devriez obtenir la fenêtre suivante:

Maintenant, allez sur "settings\compiler" et une fenêtre va apparaître:

Afin que Code::Blocks ne retourne pas d'erreur lié à "mcount", cochez la deuxième case "Profile code when executed [-pg]".

Maintenant, allez sur l'onglet "Linker settings" afin d'indiquer le chemin des fichiers lib. Les fichiers lib important pour le développement avec SDL.

ATTENTION: l'ordre des linkers est ultra important, les étapes qui vont suivre doivent être respectés à la lettre.

Dans "link librairies", ajoutez les éléments suivants en provenance du dossier Code::Blocks:

  • \MinGW\lib\libmingw32.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2.dll.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2_image.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2_image.dll.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2_mixer.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2_mixer.dll.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2_ttf.a

  • \SDL2-2.0.3\dossier_architecture_de_votre_choix\lib\libSDL2_ttf.dll.a

Ensuite, rajoutez dans "Other linker", les linkers suivants afin d'éviter que le compilateur ne retourne une erreur liée aux fichiers lib non trouvés:

  • -lmingw32

  • -lSDL2main

  • -lSDL2

  • -lSDL2_image

  • -lSDL2_mixer

  • -lSDL2_ttf

Voici ce que vous devriez avoir après avoir suivi ces étapes:

Maintenant, allez sur l'onglet "Search directories" pour indiquer au compilateur où sont le dossier include et dossier lib pour SDL2.

Dans "compiler", ajoutez le chemin menant vers le dossier include de votre librairie SDL 2:

Enfin, dans "linker", ajoutez le chemin menant vers le dossier lib de votre librairie SDL 2:

Nous avons terminé d'installer SDL2 dans Code::Blocks. Quoi de mieux que de tester notre configuration en créant un programme en interface graphique.

Ouvrir une fenêtre avec SDL 2 en langage C

Comme vous vous en doutiez, Code::Blocks permet de développer en C/C++. Afin de tester si la configuration fonctionne, nous allons ouvrir une fenêtre en SDL 2.

Pour cela, il faut créer un nouveau projet C dans Code::Blocks et allez dans le fichier main.c .

Ensuite, nous allons importer la librairie SDL avec "#include<SDL2\SDL.h>".

Puis, mettre en paramètre dans le main "(int arc, char *argv[])".

Initialisez la librairie avec "SDL_Init(SDL_INIT_EVERYTHING);".

pour ouvrir une fenêtre en SDL 2, il suffit de taper dans votre code: " SDL_Window* screen = SDL_CreateWindow("My window SUPINFO", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 480, 170, NULL);"

Enfin on va rajouter une boucle afin que la fenêtre ne se ferme pas automatiquement, ainsi qu'un événement SDL lorsque l’utilisateur appuie sur la croix, la fenêtre se ferme.

Nous obtenons le code suivant:

N'oubliez pas de mettre le fichier "SDL2.dll" à la racine du dossier de votre projet, qui se trouve dans le dossier bin dans "\SDL2-2.0.3\dossier_architecture_de_votre_choix\".

Après compilation du projet, nous obtenons:

Conclusion

Voilà comment installer SDL 2 sur Code::Blocks sur Windows, pour en savoir plus sur la syntaxe de cette librairie, je vous invite sur ce lien et je vous souhaite une excellente journée.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels