OpenGL & MacOS X

Si vous aussi vous avez déjà tenté de développer une application OpenGL sous Mac OS X, vous avez dû être surpris de constater que votre programme refusait de compiler.

En fait, j’ai trouvé 2 méthodes pour pouvoir compiler correctement vos programmes OpenGL.

La première méthode ne nécessite aucune modification du code mais une fois compilée, l’application se lancera dans X11. Pour cela, il suffit de compiler avec les paramètres suivants :

gcc main.c -o testmacx11 -I/usr/X11R6/include -L/usr/X11R6/lib -lGL -lglut

Ici, nous compilons main.c pour qu’il donne le binaire testmacx11 en lui indiquant le chemin vers les includes et les libs de X11.

L’exécution de testmacx11 provoquera le lancement de X11 puis seulement de votre application.

La deuxième méthode consiste, vous l’aurez deviné, à lancer l’application finale avec Cocoa. Pour celà, il faut tout d’abord modifier le code. Pour conserver l’interopérabilité du code et ne pas avoir à le modifier à chaque changement de système d’exploitation, on utilise la directive conditionnelle #ifdef pour déterminer si l’on est ou non sur un Mac. Selon la plateforme, on met les bons headers :

#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glut.h>
#endif

Une fois cette modification de vos sources réalisée, nous allons donc compiler à la mode Mac OS X :

gcc main.c -o testmacocoa -framework GLUT -framework OpenGL -framework Cocoa

Et voilà, quand vous lancez votre application via testmacocoa, celle-ci se lance comme une application MacOS classique.

Enfin, je trouve quand même que la compilation sous Linux est plus aisée :

gcc main.c -o testlinux -lglut

J’espère que ce post vous aidera grandement ;-) .