Me gustaría tener ambos, tanto para OS X como para Linux en mi programa OpenGL (C++), ¿cómo puedo configurar mi programa para usar uno si el otro no está disponible? Esto es lo que estoy haciendo actualmente:Encabezados OpenGL para OS X y 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>
}
Yo prefiero el '#if defined' formulario en lugar de' # ifdef' por culpa A continuación, puede usar '#elif defined' y tener un solo '# endif' en lugar de' # else', '# ifdef' con múltiples' # endif' – Skizz
+1 para * no * incluyendo 'glut.h' en cualquier lugar allí tampoco! –
En general, parece una mejor idea. Por supuesto aquí, el #ifdef _WIN32 está realmente doblado en la rama no de apple del primer #ifdef, así que no estoy seguro de que reduzca los #endifs. Pero podría ser más claro si hice 3 ramas separadas para mac/win/* nix, y usé # si está definido, como sugiere. – Gretchen