簡體   English   中英

OS X上的Eclipse中的OpenGL和GLUT

[英]OpenGL and GLUT in Eclipse on OS X

我一直試圖在OS X上使用CDT在Eclipse中設置OpenGL和GLUT庫並沒有取得多大成功。 我似乎無法讓eclipse真正意識到GLUT在哪里。 它目前給我一個錯誤,我有一個未解決的包含GL / glut.h。 在網上查看我發現我應該在gcc鏈接器設置中使用-framework GLUT標志,但這似乎無效。

好。 我在X11工作了。 我之所以能夠在X11上工作的原因是因為OS上的OpenGL庫似乎是針對64位架構的,但是如果我們使用32位架構,eclipse只會編譯代碼。 也許如果這個問題得到解決,我們可以使用OS X預裝的庫。 此外,也許在我們可以使用的操作系統上有一個32位版本,但我似乎無法找到它。 但是,我滿足於將X11用於學習目的。

首先創建您的C ++項目。 那么既然你無法使用eclipse編譯64位代碼,請添加以下內容...

替代文字

替代文字

替代文字

然后你需要你的庫和鏈接設置。 為此,請執行以下操作:

替代文字

替代文字

最后,您需要設置一個DISPLAY變量。

替代文字

在您嘗試運行啟動X11之前。

嘗試使用以下代碼來獲取我在機器中運行的內容。 希望這對你有用!

//#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();
}

根據您在OS X中安裝的GLUT庫,您的包含可能會有所不同。

在我的系統上,我必須使用:

#include <GLUT/glut.h>

為了確保我的代碼是跨平台的,我使用以下預處理器語句:

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

這可能會解決一些或你的問題。


我寫了一篇關於如何設置Eclipse以在WindowsMac OS X中使用C / C ++Java開發OpenGL (和GLUT )應用程序的文章,如果您感興趣的話。 它包含所有步驟以及系統准備就緒所需的全部知識。

你可以在這里找到它:
設置Eclipse在Windows和MAC OS X上用Java和C / C ++開發OpenGL和GLUT應用程序!

MacPorts的默認安裝目錄是/ opt / local。 可能/ opt / local未添加到Eclipse中的編譯器包含路徑中。 要么是重新安裝Xcode,要么在Xcode libs的默認包含路徑上給你GLUT / glut.h(你可能需要添加到eclipse?我不運行OS X所以我不能說Xcode installdir是什么是,但看起來它可能在/ Developer,或/ Library / Developer / Shared)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM