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
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();
}
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 .
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
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).
escribí un artículo acerca de cómo configurar Eclipse para desarrollar aplicaciones OpenGL (y GLUT) en C/C++ y Java tanto en de Windows y Mac OS X si está interesado. Contiene todos los pasos y todo lo que necesita saber para tener el sistema listo.
Se puede encontrar aquí:
Setup Eclipse to develop OpenGL & GLUT apps in Java & C/C++ on Windows & MAC OS X!
- 1. GLUT en OS X con OpenGL 3.2 Core Profile
- 2. Encabezados OpenGL para OS X y Linux
- 3. Inicializando OpenGL sin GLUT
- 4. texto simple en OpenGL (sin GLUT)
- 5. SDL vs GLUT en opengl Programación 3D
- 6. ¿Aprendizaje de OpenGL sin GLUT?
- 7. diferencia entre SDL y GLUT
- 8. Relleno de líneas de escaneo Algoritmo OpenGL/GLUT en C++
- 9. Compilación de OpenGL SOIL en Mac OS X
- 10. Java FX en Eclipse en Mac OS X 10.7
- 11. ¿Cómo encuentro el menú "Preferencias" en Eclipse en OS X?
- 12. ¿El cl-opengl glut está maduro?
- 13. Centrar una ventana OpenGL con GLUT
- 14. OpenGL GLUT ventana muy lenta, ¿por qué?
- 15. Dylibs y OS X
- 16. ¿Cómo usar GLUT/OpenGL para renderizar en un archivo?
- 17. Eclipse indigo tipeo lag en OS X Lion
- 18. Eclipse Juno escribiendo retraso en OS X Lion
- 19. instalación del complemento BlackBerry Eclipse JDE en Mac OS X
- 20. sem_init en OS X
- 21. ¿Cómo dibujo texto con GLUT/OpenGL en C++?
- 22. Cómo usar el diccionario Mac OS X en eclipse
- 23. CLSQL y MYSQL en OS X
- 24. RVM, FSEvents y CarbonCore en OS X
- 25. Mono y WInforms en OS X
- 26. pygettext.py y msgfmt.py en Mac OS X
- 27. Biblioteca para aplicaciones iOS y OS X?
- 28. depurador/error de OpenGL tracer para OS X 10.7 (Lion)?
- 29. FreeGLUT en Mac OS X Lion
- 30. emacs en OS X 10.6
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