2010-01-15 11 views
8

He intentado configurar las bibliotecas OpenGL y GLUT en Eclipse, con CDT, en OS X sin mucho éxito. Parece que no puedo eclipsar para darme cuenta de dónde está GLUT. Actualmente me está dando el error de que tengo una inclusión no resuelta GL/glut.h. Al mirar en línea encontré que debería estar usando la bandera GLUT -framework en la configuración del enlazador gcc, pero esto parece ineficaz.OpenGL y GLUT en Eclipse en OS X

Respuesta

7

Ok. Lo tengo trabajando en X11. La razón por la que solo pude hacerlo funcionar en X11 es porque parece que las librerías OpenGL en el sistema operativo son para la arquitectura de 64 bits, pero eclipse solo compilará el código si usamos la arquitectura de 32 bits. Tal vez si esto se solucionara, podríamos usar las bibliotecas preinstaladas de OS X. Además, tal vez haya una versión de 32 bits en el sistema operativo que podríamos usar, pero parece que no puedo encontrarlo. Yo, sin embargo, estoy contento con el uso de X11 para mis propósitos de aprendizaje.

Primero crea tu proyecto C++. Entonces ya no se puede compilar el código de 64 bits utilizando Eclipse añadir la siguiente ...

alt text http://img132.imageshack.us/img132/5163/step1c32bit.png

alt text http://img251.imageshack.us/img251/5163/step1c32bit.png

alt text http://img132.imageshack.us/img132/2325/step1linker32bit.png

Luego hay bibliotecas y la vinculación levantado. Para ello haga lo siguiente:

alt text http://img29.imageshack.us/img29/1904/step2linkerglglu.png

alt text http://img196.imageshack.us/img196/4313/step2glut.png

Finalmente necesitará establecer una variable DISPLAY.

alt text http://img40.imageshack.us/img40/7306/step3display.png

antes de intentar ejecutar la puesta en marcha de X11.

Pruebe el siguiente código para obtener algo que tengo funcionando en mi máquina. ¡Espero que funcione para ti!

//#include <GL/gl.h> 
//#include <GL/glu.h> 
#include <GL/glut.h> 
#define window_width 640 
#define window_height 480 
// Main loop 
void main_loop_function() { 
    // Z angle 
    static float angle; 
    // Clear color (screen) 
    // And depth (used internally to block obstructed objects) 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    // Load identity matrix 
    glLoadIdentity(); 
    // Multiply in translation matrix 
    glTranslatef(0, 0, -10); 
    // Multiply in rotation matrix 
    glRotatef(angle, 0, 0, 1); 
    // Render colored quad 
    glBegin(GL_QUADS); 
    glColor3ub(255, 000, 000); 
    glVertex2f(-1, 1); 
    glColor3ub(000, 255, 000); 
    glVertex2f(1, 1); 
    glColor3ub(000, 000, 255); 
    glVertex2f(1, -1); 
    glColor3ub(255, 255, 000); 
    glVertex2f(-1, -1); 
    glEnd(); 
    // Swap buffers (color buffers, makes previous render visible) 
    glutSwapBuffers(); 
    // Increase angle to rotate 
    angle += 0.25; 
} 
// Initialze OpenGL perspective matrix 
void GL_Setup(int width, int height) { 
    glViewport(0, 0, width, height); 
    glMatrixMode(GL_PROJECTION); 
    glEnable(GL_DEPTH_TEST); 
    gluPerspective(45, (float) width/height, .1, 100); 
    glMatrixMode(GL_MODELVIEW); 
} 
// Initialize GLUT and start main loop 
int main(int argc, char** argv) { 
    glutInit(&argc, argv); 
    glutInitWindowSize(window_width, window_height); 
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); 
    glutCreateWindow("GLUT Example!!!"); 
    glutDisplayFunc(main_loop_function); 
    glutIdleFunc(main_loop_function); 
    GL_Setup(window_width, window_height); 
    glutMainLoop(); 
} 
+1

Esta respuesta me llevó a la solución que estaba buscando. Ahora tengo todo configurado correctamente. El único cambio que tuve que hacer con el fragmento de código suministrado fue cambiar la declaración de inclusión a #include según la respuesta de Brian. – fastrack20

3

Dependiendo de la biblioteca GLUT que instaló en OS X, su inclusión podría ser diferente.

En mi sistema tengo que usar:

#include <GLUT/glut.h> 

Para asegurarse de que mi código es multiplataforma utilizo la siguiente declaración pre-procesador:

#if defined(__APPLE__) && defined(__MACH__) 
# include <GLUT/glut.h> 
#else 
# include <GL/glut.h> 
#endif 

que podría corregir algunos o sus problemas .

+0

que quería decir que lo hice incluye cambiar el estado de GLUT/glut.h pero esto parece que todavía no han solucionado el problema. Creo que la biblioteca GLUT que instalé era de la versión de macports. También instalé XCode y tengo todas las bibliotecas desde allí. – fastrack20

1

El directorio de instalación predeterminado para MacPorts es/opt/local. Podría ser/opt/local no se agrega a la ruta de acceso del compilador en Eclipse. ¿O eso, o reinstalar Xcode para darle GLUT/glut.h en la ruta de inclusión predeterminada para Xcode libs (que puede necesitar agregar a eclipse?) No ejecuto OS X, así que no puedo decir qué es lo que instaló Xcode es, pero parece que podría estar en/Developer, o/Library/Developer/Shared).