Je voudrais avoir les deux inclus pour OS X ainsi que linux dans mon programme opengl (C++) comment puis-je configurer mon programme pour en utiliser un si l'autre n'est pas disponible? Voici ce que je suis en train de faire:En-têtes OpenGL pour OS X & Linux
if(!FileExists(OpenGL/gl.h))
#include <GL/glut.h> //linux lib
else {
#include <OpenGL/gl.h> //OS x libs
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
}
Je préfère la forme '#if defined' au lieu de' # ifdef' beacuse vous pouvez ensuite utiliser '#elif defined' et avoir un seul '# endif' plutôt que' # else', '# ifdef' avec plusieurs' # endif' – Skizz
+1 pour * not * incluant 'glut.h' n'importe où! –
En général, cela semble être une meilleure idée. Bien sûr, ici, #ifdef _WIN32 est en fait replié dans la branche non-pomme du premier #ifdef, donc je ne suis pas sûr que cela réduirait les #endifs. Mais il pourrait être plus clair si j'ai créé 3 branches séparées pour mac/win/* nix, et utilisé #if défini, comme vous le suggérez. – Gretchen