Partage
  • Partager sur Facebook
  • Partager sur Twitter

[TUTO] - CLion, SDL2 et SDL_image (Windows)

Configurer CLion pour utiliser SDL2 et utiliser IMG_Load en C

2 mars 2018 à 21:53:32

Bonjour à toutes et à tous,

Je mets à jour mon tuto pour qu'il soit 100% fonctionnel et portable. Vous aurez donc seulement besoin d'avoir installer minGW et CLion si vous voulez ouvrir votre projet depuis un autre ordinateur.

Après avoir passé un temps monstre à rechercher et comprendre comment utilisé SDL2 sous CLion, je vais vous expliquer comment faire. N'ayant jamais trouvé de tutoriel simple (que ce soit en anglais ou français) pour utiliser SDL2, je vais vous expliquer comment faire afin de vous éviter de vous arracher les cheveux comme moi.

Dans un premier temps il faut avoir créer un nouveau projet depuis CLion.

Une fois cela fait je vous montre l'arborescence de mon projet (MarioSokoban du cours sur le C):

.idea (créer automatiquement) : dossier contenant la structure de votre projet CLion

cmake-build-debug (créer automatiquement) : dossier contenant les fichiers sources compilés, les cmake et les logs mais aussi et surtout les .dll (bibliothèque d'exécution ou "runtime binaries") de SDL2 et SDL2_Image.


header (à créer) : dossier contenant les .h créer par vos soins pour le projet cocnerné

images (à créer) : dossier contenant des images, si besoin est

level (à créer, optionnel) : contient le title mapping pour le jeu

SDL2 : contient TOUS les fichiers nécessaires pour le développement

src (à créer) : dossier contenant vos .c

CMakeLists.txt : fichier à modifier pour utiliser SDL2 sous CLion.




Voici ce que votre fichier CMakeLists.txt contiendra (modification des chemins absolu nécessaire bien entendu):

cmake_minimum_required(VERSION 3.9)
project(MarioSokoban C) #nom de projet et langage utilisé
set(CMAKE_C_STANDARD 99) #version du langage

set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") #Affiche TOUS les warnings en mode debug
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/SDL2/cmake") #chemin pour accéder au fichier cmake 
#qui vont trouver les différents fichiers nécessaire pour utiliser SDL2

set(SDL2_IMAGE_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/SDL2/include") #chemin spécifiant l'endroit où se situe vos .h pour 
#SDL2_Image
set(SDL2_IMAGE_LIBRARY "${PROJECT_SOURCE_DIR}/SDL2/lib/SDL2_image.lib") #chemin spécifiant l'endroit où se situe vos 
#bibliothèques pour SDL2_Image

find_package(SDL2 REQUIRED)
find_package(SDL2_Image REQUIRED)

set(INCLUDES header/constantes.h header/editeur.h header/fichier.h header/jeu.h header/deplacerJoueur.h)
set(SOURCES src/main.c src/jeu.c src/chargerNiveau.c src/deplacerJoueur.c src/affichageMario.c)

add_executable(MarioSokoban ${INCLUDES} ${SOURCES})

include_directories(${PROJECT_SOURCE_DIR}/include ${SDL2_IMAGE_INCLUDE_DIR}) #inclusion des dossier nécessaire pour le 
#développement avec SDL2
target_link_libraries(MarioSokoban ${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY} ) #inclusion des bibliothèques nécessaire pour 
#le développement avec SDL2

On arrive à la dernière étape. Il faut placer les header et les bibliothèques de développent dans le dossier SDL2. Voici l'arborescence du dossier SDL2:

cmake : dossier contenant les trois fichiers FindSDL2.cmake, FindSDL2_image.cmake, FindSDL2_ttf.cmake, qui vont vous permettre de trouver le chemin vers les bibliothèques et headers nécessaire (lien).

include : dossier contenant tous les .h de SDL2 et SDL_Image.

lib : dossier contenant tous les .a et .lib des bibliothèques de développement de SDL2 et SDL_Image.

Remarque: faites bien attention à télécharger les "developement librairies" SDL-devel-2.x.x-VC.zip et SDL2_image-devel-2.0.3-VC.zip.



Voilà, vous pouvez maintenant utiliser la SDL2 avec CLion. Comme quoi ce n'est pas bien compliqué à configurer ! Presque aussi simple qu'avec CodeBlocks.

En espérant que ça pourra aider quelque uns d'entre vous {#emotions_dlg.smile}


-
Edité par ThéoR 22 septembre 2018 à 14:33:39

  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2018 à 1:49:29

Bonjour, merci pour ce tuto cependant je rencontre des petits problèmes.

Lorsque je suis à la lettre votre tuto j'obtient cette erreure :

"  Parse error.  Expected a command name, got unquoted argument with text
  "<br>add_executable". "

et lorsque je supprime le <br> j'obtient :

"Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)"

Si quelqu'un aurait une solution je suis preneur merci encore.

  • Partager sur Facebook
  • Partager sur Twitter
13 juin 2018 à 11:46:45

xYokilyoksxCGU a écrit:

Bonjour, merci pour ce tuto cependant je rencontre des petits problèmes.

Lorsque je suis à la lettre votre tuto j'obtient cette erreure :

"  Parse error.  Expected a command name, got unquoted argument with text
  "<br>add_executable". "

et lorsque je supprime le <br> j'obtient :

"Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)"

Si quelqu'un aurait une solution je suis preneur merci encore.


Bonjour à toi, as-tu réussit à régler le problème ?
  • Partager sur Facebook
  • Partager sur Twitter
21 juin 2018 à 5:26:45

Non désolé je suis passé par codeblocks au final.

  • Partager sur Facebook
  • Partager sur Twitter
24 juin 2018 à 22:16:51

D'accord. Est-ce que tu veux quand même essayer de régler le problème ou bien tu préfères ne pas perdre de temps et rester sur CodeBlocks ?

  • Partager sur Facebook
  • Partager sur Twitter
22 septembre 2018 à 14:41:47

xYokilyoksxCGU a écrit:

Non désolé je suis passé par codeblocks au final.


J'ai réglé le problème que tu avais car je me suis rendu compte qu'en déplaçant mon projet sur une autre machine que j'avais la même erreur. J'ai donc mis le tuto à jour et tu peux le suivre si tu as envie d'utiliser CLion

-
Edité par ThéoR 22 septembre 2018 à 14:42:09

  • Partager sur Facebook
  • Partager sur Twitter
21 octobre 2021 à 18:14:45

        |modification des chemins absolu nécessaire bien entendu

que voulez vous dire par la?

quel chemin faut il modifier?

car quand j exécute un programme utilisant SDL2,il me met ça:

CMake Error at

C:/Program Files/JetBrains/CLion 2021.2.3/bin/cmake/win/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):

Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)

Call Stack (most recent call first):

C:/Program Files/JetBrains/CLion 2021.2.3/bin/cmake/win/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594

(_FPHSA_FAILURE_MESSAGE)

SDL2/cmake/FindSDL2.cmake:173 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)

CMakeLists.txt:16 (find_package)

-
Edité par AdamAitBoukha 21 octobre 2021 à 18:22:03

  • Partager sur Facebook
  • Partager sur Twitter
22 octobre 2021 à 9:27:38

Bonjour,

Merci de colorer votre code à l'aide du bouton Code

Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

-
Edité par Benzouye 22 octobre 2021 à 9:28:15

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL