Bonjour,
j'essaie de compiler un projet en C utilisant la SDL2 mais cela échoue.
L'architecture de mon projet ( la même que dans ce lien http://alexandre-laurent.developpez....configuration/) est la suivante :
include
- SDL2
- - …
- - tous les fichiers .h de la SDL
- - …
lib
-libSDL2*.a (ce qui donne : libSDL2.a, libSDL2.dll.a, libSDL2_test.a, libSDL2main.a)
src
- main.c
SDL2.dll (pour Windows)
Tous ces .a, .h et .dll proviennent de SDL2-2.0.3/i686-w64-mingw32 extrait du package SDL2-devel-2.0.3-mingw.tar.gz téléchargé sur https://www.libsdl.org/download-2.0.php
(Ils semblent donc être compatibles avec un MinGW 32 bit)
Le fichier main.c contient le code de test de la page: http://alexandre-laurent.developpez....ration/#LIII-A
J'utilise gcc pour compiler en ligne de commande (sous windows), installé avec MinGW ( depuis le site officiel). (gcc fonctionne sur des code en C n'utilisant pas SDL)
La commande utilisée est gcc -Wall -Wextra -L./lib -I./include -lSDL2-2.0 src/main.c -o main lancée depuis la racine des 3 dossiers précédents.
Après avoir lancé cette commande , j'obtient le message d'erreur suivant (outre les warnings concernant l'absence d'utilisation des arguments de main):
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lSDL2-2.0
collect2.exe: error: ld returned 1 exit status
Je ne comprend pas ce qui cloche, en cherchant j'ai cru comprendre que l'erreur était lors de l'édition des liens (ld.exe) et que donc celui-ci ne trouve pas lSLD2-2.0 ( lu comme libSDL2-2.0).
J'ai essayé d'ajouter -lmingw32 à la commande, comme conseillé à la fin du tutoriel précédent mais cela est resté sans effet.
j'ai aussi essayer d'écrire -lSDL2-2.0 comme -lSDL2 -lSDL.dll -lSDL2_test -lSDL2main mais la compilation affiche alors un tas de undefined reference à des fonctions SDL.
Voila, voila, si une âme généreuse pouvait se pencher sur mon problème
edit: J'ai aussi modifié le header SDL_platform.h contenu dans include/SDL2/ à l'aide de ceci http://hg.libsdl.org/SDL/rev/e217ed463f25 pour corriger une erreur entre windows8 (je crois) et la version 2.0.3 de la SDL
La modification s'est faite avec succès ( deux lignes à remplacer) et a corrigé l'erreur, donc je ne pense pas que mon problème vienne de là.
Partager