Bonjour,
Je suis sous windows 10, 64 bits
j'utilise NotePad++ pour écrire mes programmes en C,
je compile avec GCC sous MinGW_W64. dans une fenêtre console Windows (cmd)
j'ai i686-7.2.0-posix-dwarf-rt_v5-rev1 d'installé sur mon PC.
Après m'être lancé dans la programmation en C , je souhaite m'initier à l'utilisation de la bibliothèque SDL.
Pour compiler j'utilise le compiler gcc de MinGW (dans le cmd pour compiler mon code je tape habituellement "gcc monfichier.c -o monfichier.exe"
cela fonctionne parfaitement.
Je souhaite donc faire la même chose pour mon code en C en utilisant la librairie SDL.
J'ai suivi des tutos à la lettre mais, pour moi, les explications ne sont jamais assez claire ...
j'ai téléchargé le fichier : SDL2-devel-2.0.3-mingw.tar.gz
Je l'ai décompressé, et je trouve plusieurs fois la même chose dans des répertoires différents.
je trouve :
Un premier répertoire : SDL2-devel-2.0.3-mingw, et dans ce répertoire un répertoire : SDL2-2.0.3
Puis, dans le répertoire SDL2-2.0.3, je trouve des répertoires :
i686-w64-mingw32
include
lib
test
x86_64-w64-mingw32
Si j'ouvre ce dernier (par exemple : x86_64-w64-mingw32), je trouve
bin
include
lib
share
Si j'ouvre i686-w64-mingw32 je trouve les mêmes répertoire que ceux de x86_64-w64-mingw32
Je me suis créé sur mon bureau un repertoire qui se nomme Projet1
j'ai mis les répertoires bin include et lib (de x86_64-w64-mingw32) dedans projet1.
j'y ai mis mon programme ouvrefenetre.c
je lance ma console windows et je me mets sur C:\Users\JeanLouis\Desktop\Projet1>
en lançant mon fichier .bat qui lance la console, je passe les commande suivante :
echo off
set PATH=C:\Program Files (x86)\mingw-w64\i686-7.2.0-posix-dwarf-rt_v5-rev1\mingw32\bin;%PATH%
cd "C:\Users\JeanLouis\Desktop\projet1"
"C:\WINDOWS\system32\cmd.exe"
je tape la commande suivante : gcc ouvrirfenetre.c -L./lib -I./include -lSDL2-2.0
j'ai l'erreur :
C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.2.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lSDL2-2.0
collect2.exe: error: ld returned 1 exit status
j'ai bien compris que j'allais chercher les .h dans include, les .a dans lib
je ne comprends pas le -lSDL2-2.0 que je mets dans ma commande GCC.
Voici mon programme ouvrefenetre.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <SDL2/SDL.h>
#include <stdio.h>
int main(int argc, char** argv)
{
/* Initialisation simple */
if (SDL_Init(SDL_INIT_VIDEO) != 0 )
{
fprintf(stdout,"Échec de l'initialisation de la SDL (%s)\n",SDL_GetError());
return -1;
}
{
/* Création de la fenêtre */
SDL_Window* pWindow = NULL;
pWindow = SDL_CreateWindow("Ma première application SDL2",SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
640,
480,
SDL_WINDOW_SHOWN);
if( pWindow )
{
SDL_Delay(3000); /* Attendre trois secondes, que l'utilisateur voit la fenêtre */
SDL_DestroyWindow(pWindow);
}
else
{
fprintf(stderr,"Erreur de création de la fenêtre: %s\n",SDL_GetError());
}
}
SDL_Quit();
return 0;
} |
Merci de m'aider.
Partager