Chciałbym mieć zarówno załączniki dla OS X, jak i dla Linuxa w moim programie OpenGL (C++), w jaki sposób mogę ustawić mój program tak, aby używał go, jeśli drugi nie jest dostępny? Oto co mam aktualnie robi:Nagłówki OpenGL dla OS X i 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>
}
Wolę '#if defined' formie zamiast' # ifdef' beacuse można wtedy użyć '#elif defined' i mieć pojedyncze '# endif' zamiast' # else', '# ifdef' z wieloma' # endif'' – Skizz
+1 dla * nie * włącznie z 'glut.h' gdziekolwiek indziej! –
Ogólnie rzecz biorąc, brzmi to jak lepszy pomysł. Oczywiście tutaj #ifdef _WIN32 jest faktycznie złożony w gałąź innego niż jabłko pierwszego #ifdef, więc nie jestem pewien, czy zredukuje #endifs. Ale może być jaśniej, gdy utworzę 3 oddzielne gałęzie dla mac/win/* nix i użyję zdefiniowanego #if, jak sugerujesz. – Gretchen