Próbowałem skonfigurować biblioteki OpenGL i GLUT w Eclipse, z CDT, na OS X z niezbyt dużym sukcesem. Nie mogę sprawić, by zaćmienie uświadomiło sobie, gdzie jest GLUT. Obecnie daje mi błąd, że mam nierozwiązaną integrację GL/glut.h. Rozglądając się po Internecie stwierdziłem, że powinienem używać flagi -ramkowej GLUT w ustawieniach gcc linker, ale wydaje się to nieskuteczne.OpenGL i GLUT w Eclipse na OS X
Odpowiedz
Ok. Zrobiłem to działając w X11. Powodem, dla którego mogłem pracować tylko na X11, wydaje się, że biblioteki OpenGL w systemie operacyjnym są przeznaczone dla architektury 64-bitowej, ale Eclipse skompiluje kod tylko wtedy, gdy będziemy używać architektury 32-bitowej. Może gdyby to naprawić, moglibyśmy użyć preinstalowanych bibliotek OS X. Być może jest 32-bitowa wersja leżąca w systemie operacyjnym, z której możemy skorzystać, ale nie mogę tego znaleźć. Ja jednak jestem zadowolony z używania X11 do celów edukacyjnych.
Najpierw utwórz projekt C++. Następnie, ponieważ nie można skompilować kod w wersji 64-bitowej przy użyciu Eclipse dodać następujących ...
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
następnie trzeba bibliotek i łączenie skonfigurować. Aby to zrobić, wykonaj następujące czynności:
alt text http://img29.imageshack.us/img29/1904/step2linkerglglu.png
alt text http://img196.imageshack.us/img196/4313/step2glut.png
Wreszcie trzeba ustawić zmienną DISPLAY.
alt text http://img40.imageshack.us/img40/7306/step3display.png
Zanim spróbujesz uruchomić uruchomiony X11.
Wypróbuj poniższy kod, aby uzyskać coś, co mam uruchomiony w moim komputerze. Mam nadzieję, że to działa dla Ciebie!
//#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();
}
W zależności od tego, którą bibliotekę GLUT zainstalowałeś w OS X, twoja oferta może być inna.
W moim systemie muszę używać:
#include <GLUT/glut.h>
Aby upewnić się, mój kod jest wieloplatformowym używam następujące oświadczenie sprzed Procesor:
#if defined(__APPLE__) && defined(__MACH__)
# include <GLUT/glut.h>
#else
# include <GL/glut.h>
#endif
To może rozwiązać niektóre lub problemów .
chciałem powiedzieć, że zrobiłem zmienić obejmuje do stanu GLUT/glut.h ale to wciąż wydaje się, że nie naprawili problem. Uważam, że biblioteka GLUT, którą zainstalowałem, pochodziła z wersji Macports. Zainstalowałem także XCode i mam tam wszystkie biblioteki. – fastrack20
Domyślny katalog instalacyjny dla MacPorts to/opt/local. Może być/opt/local nie jest dodany do twojego kompilatora to ścieżka w Eclipse. Albo to, albo ponownie zainstalować Xcode, aby dać ci GLUT/glut.h na domyślnej ścieżce dołączania do bibliotek Xcode (które możesz wtedy dodać do Eclipse?) Nie uruchamiam OS X, więc nie mogę powiedzieć co Xcode installdir jest, ale wygląda na to, że może być w/Developer, lub/Library/Developer/Shared).
napisałem artykuł o tym, jak skonfigurować Eclipse opracowania OpenGL (i GLUT) wnioski w C/C++ i Java zarówno systemu Windows i Mac OS X jeśli jesteś zainteresowany. Zawiera wszystkie kroki i wszystko, co musisz wiedzieć, aby przygotować system.
Można go znaleźć tutaj:
Setup Eclipse to develop OpenGL & GLUT apps in Java & C/C++ on Windows & MAC OS X!
Ta odpowiedź doprowadziła mnie do rozwiązania, którego szukałem. Mam teraz wszystko poprawnie skonfigurowane. Jedyną zmianą, którą musiałem wprowadzić za pomocą dostarczonego fragmentu kodu, była zmiana instrukcji include na #include zgodnie z odpowiedzią Briana. –
fastrack20