2014-04-12 21 views
8

Sto provando a eseguire l'esempio openGL this sul mio Mac dalla riga di comando utilizzando gcc. XCode è installato, gcc è stato usato molte volte con altri programmi (senza grafica).Come utilizzare openGL con gcc su Mac?

seguito a this argomento corro:

g++ 1.cpp -framework OpenGL -lGLU -lglut 

e ottenere:

1.cpp:12:21: fatal error: GL/glut.h: No such file or directory 

ho trovato glut.h a /System/Library/Frameworks/GLUT.framework/Headers/ e constatare che la struttura è diversa (non GL cartella). Ma anche rimuovere GL/ e utilizzare -I/System/Library/Frameworks/GLUT.framework/Headers/non aiuta molto ..

Quindi mi chiedo - come usare openGL con gcc su Mac correttamente?

risposta

22

Il tuo primo problema è che l'infrastruttura Framework di Apple sabota attivamente portabilità del codice, ponendo le intestazioni OpenGL in un percorso non standard. Sulle piattaforme Apple le intestazioni OpenGL si trovano in una directory denominata OpenGL anziché solo GL.

Quindi per includere portabile le intestazioni che si devono scrivere

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

vostro altro problema è, che GLUT non è parte di OpenGL e una, libreria indipendente di terze parti, che non è più contenuta nel quadro OpenGL. È necessario utilizzare il framework GLUT. E, naturalmente, che si usa non standard includono percorsi così:

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

compilare con l'-framework OpenGL -framework GLUT opzioni.

5

Sulla Mavericks usando l'inclusione

#include <GLUT/glut.h> 

opere se si compila con la seguente riga

g++ 1.cpp -framework OpenGL -framework GLUT