IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 86 fois
Vote des utilisateurs
4 
0 
Détails
Licence : Freeware
Mise en ligne le 20 août 2013
Plate-forme : Windows
Langue : Français
Référencé dans
Navigation

SDL 2.0 Template pour Code::Blocks

Voici la base d'un projet utilisant la SDL 2.0 pour Code::Blocks sous Windows.

Le projet est configuré afin de démarrer rapidement une nouvelle application SDL. Aucune bibliothèque additionnelle n'a été ajoutée et donc seule la SDL est incluse. Le code source est simpliste et commenté. Il ouvre une fenêtre SDL et la referme au bout de trois secondes.

L'avantage d'un tel projet contrairement aux différents tutoriels du net est que la SDL est incluse directement dans le projet et permet une distribution du code source simple et efficace. Ce template a été créé pour accompagner le tutoriel d'installation de la SDL 2.0.

Pour Linux, il ne devrait pas y avoir grand chose à modifier.
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 02/05/2015 à 20:55
Avatar de VampireGirl
Futur Membre du Club https://www.developpez.com
Le 15/09/2013 à 0:23
C'est génial ! Mais je me demande :

J'ai essayé moi même de construire un projet en ajoutant SDL 2.0.
J'obtiens une erreur "undefined WinMain@16", apparemment récurrente. La solution est d'ajouter libmingw32, ce que j'ai fait, sans succès.

Comment as-tu fais ? Je précise que si j'utilise ton projet ça marche, mais si je remplace par les libs téléchargées sur le site officielles, ça ne marche plus.
J'ai aussi remarqué que tes fichiers sont plus légers. As-tu toi même compiler SDL ?

Je te remercie d'avance !
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 15/09/2013 à 9:13
Il y a une possible explication ici : http://c.developpez.com/faq/?page=di...DIVERS_WinMain

Sinon, normalement, libmingw32 résout le problème (j'en parle ici : http://alexandre-laurent.developpez....ration/#LV-B-3 ).
Avatar de VampireGirl
Futur Membre du Club https://www.developpez.com
Le 15/09/2013 à 13:28
Rebonjour !

J'ai résolu mon problème avant d'aller me coucher hier, voici la solution pour celles et ceux qui auraient le même :

Je n'avais pas pris la bonne version (la i686)
2 L'ordre des fichiers n'était pas bon ! Je devais le mettre ainsi :

libmingw32.a
libSDL2main.a
libSDL2.dll.a
libSDL2.a

Si je ne fais pas ainsi ça ne fonctionne pas.
Merci à toi en tout cas !
Avatar de Kannagi
Expert éminent sénior https://www.developpez.com
Le 15/09/2013 à 14:02
Erreur "undefined WinMain@16" signifie que ton main n'est pas un main valide ,sur Windows un main valide en GUI c'est :
Code : Sélectionner tout
1
2
3
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
                                                 LPSTR lpCmdLine, int nCmdShow);
Si on veut faire du code portable et pas link mingw32 il suffit juste de mettre ceci :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
#ifdef __MINGW32__
#undef main
#endif

int main()
{

      return 0;
}
Du coup inutile de changer le link en passant de windows/linux/autre , par contre un simple -lSDL2 suffit il me semble sur code block en peut écrire aussi de cette manière dans les link :
Code : Sélectionner tout
SDL2
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 19/10/2013 à 19:22
Oui, pour que la version SDL 64 bits fonctionnent, il faut utiliser la version 64 bits de MinGW, sinon, il ne trouvera pas les fonctions (simplement, il ne chargera pas les bibliothèques, car il n'est pas capable de lire celles-ci).
Avatar de moussadu94
Candidat au Club https://www.developpez.com
Le 01/01/2014 à 22:36
J'ai passé des heures a essayer de configurer code blocks
Avatar de Franck.H
Rédacteur https://www.developpez.com
Le 18/01/2014 à 19:53
J'ai exactement la même erreur. En compilant ton projet aucun soucis mais avec le miens qui est normalement configuré de la même façon avec juste l’arborescence des dossiers qui changent mais j'ai des chemins relatifs générés par C::B lors de l'ajout des lib etc...

De quoi cela peut bien provenir ?!

Tout est là, la libmingw32.a également

EDIT:
En fait, en prenant les lib de ton projet ça fonctionne, moi j'ai téléchargé la dernière version, quelle serait alors la différence (oui j'ai bien pris la version 32 pour MingW32 ) ?
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 18/01/2014 à 19:59
Quelles bibliothèques avez-vous installer ? Si vous prenez la SDL 2 (version 64 bits), ça risque de ne pas fonctionner car le compilateur est 32 bits seulement (car MinGW compile en 32 bits).
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.