Malheureusement, beaucoup de personnes renoncent à utiliser SDL avec Eclipse sous Mac… J’espère que ce mini-tutoriel vous aidera et que vous ne serez pas contraint de travailler sous XCode.

Installer SDL pour XCode…

Aller sur le site officiel de SDL et télécharger SDL-1.2.14.dmg dans Runtimes Librairies et SDL-devel-1.2.14-extras.dmg dans Developement Librairies.

Pour SDL-1.2.14.dmg :

Copier SDL.framework dans /Bibliothèque/Frameworks (Certains répertoire ont aussi un nom anglais, /Library/Frameworks dans ce cas la).

Copier le dossier devel-lite et coller le dans /Developer/

Pour SDL-devel-1.2.14-extras.dmg :

Commencons par Xcode Template, sélectionner la version correspondante, copier les 3 dossiers ( SDL Applicatio, SDL Cocoa APplication et SDL OpenGL Application ) et  coller les dans :

/Developer/Xcode/Library/Xcode/Project Templates/Application

Copier le dossier SDLMain dans /Developer/

Maintenant, lancer XCode, vous devriez avoir la possibilité de créer une « SDL Application » dans la catégorie Application.

Passons à Eclipse…

On supposera qu’on a installé correctement Eclipse et qu’il soit fonctionnel pour le C.

Créer un projet, puis clic-droit dessus  : Propriétés > C/C++ Build > Settings :

Dans MacOS X C Linker > Miscellanous, insérer (dans la zeone Linker Flags ) :  -framework Cocoa -framework SDL /Lien/Absolue/Vers/Votre/Projet/SDLMain.m

Dans GCC C Compiler > Directories, ajouter un repertoire et mettre :/Library/Frameworks/SDL.framework/Versions/A/Headers

Ajouter à votre fichier source : #include « SDL/SDL.h »

Attention : Vous ne devez pas declarer votre man comme suit : int main() mais int main(int argc, char *argv[])

J’espère que ce mini-tuto vous sera utile, n’hésitez pas à laisser des commentaires, avis…

Code pour tester (généré par XCode):

L’indentation est détruite par la mise en page du blog :sous Eclupse, ctrl + a puis ctrl + i ré-indente tout ca !

/* Simple program:  Create a blank window, wait for keypress, quit.
Please see the SDL documentation for details on using the SDL API:

/Developer/Documentation/SDL/docs.html

*/

#include <stdio.h>

#include <stdlib.h>
#include <string.h>
#include <math.h>

#include "SDL/SDL.h"

int main(int argc, char *argv[])
{
Uint32 initflags = SDL_INIT_VIDEO;  /* See documentation for details */
SDL_Surface *screen;
Uint8  video_bpp = 0;
Uint32 videoflags = SDL_SWSURFACE;
int    done;
SDL_Event event;

/* Initialize the SDL library */
if ( SDL_Init(initflags) < 0 ) {
fprintf(stderr, "Couldn't initialize SDL: %sn",
SDL_GetError());
exit(1);
}

/* Set 640x480 video mode */
screen=SDL_SetVideoMode(640,480, video_bpp, videoflags);
if (screen == NULL) {
fprintf(stderr, "Couldn't set 640x480x%d video mode: %sn",
video_bpp, SDL_GetError());
SDL_Quit();
exit(2);
}

done = 0;
while ( !done ) {

/* Check for events */
while ( SDL_PollEvent(&event) ) {
switch (event.type) {

case SDL_MOUSEMOTION:
break;
case SDL_MOUSEBUTTONDOWN:
break;
case SDL_KEYDOWN:
/* Any keypress quits the app... */
case SDL_QUIT:
done = 1;
break;
default:
break;
}
}
}

/* Clean up the SDL library */
SDL_Quit();
return(0);
}

Sur le même sujet :

  1. Créer un USB Bootable Debian (Squeeze) sous MacOS