2011-05-08 31 views
3

我是OpenGL的初學者,「我的」第一個程序是Sierpinski墊片。我在我的MacBook Pro上使用Netbeans,我相信我已經安裝了這些庫,但可能它們沒有正確鏈接。體系結構x86_64的未定義符號:「_ glutInit」,引用來自:main.o中的_main/Mac上的Netbeans

#include <iostream> 
#include <stdio.h> 
#include <OpenGL/gl.h> 
#include <OpenGL/glu.h> 
#include <GLUT/glut.h> 
#include <OpenGL/glext.h> 

void myinit(){ 
    glClearColor(1.0,1.0,1.0,1.0); 
    glColor3f(1.0,0.0,0.0); 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluOrtho2D(0.0,50.0,0.0,50.0); 
    glMatrixMode(GL_MODELVIEW); 
} 

void display(){ 
    GLfloat vertices[3][2]={{0.0,0.0},{25.0,50.0},{50.0,0.0}}; 
    int i, j, k; 
    int rand(); 
    GLfloat p[2]={7.5,5.0}; 
    glClear(GL_COLOR_BUFFER_BIT); 
    glBegin(GL_POINTS); 

    for(k=0; k<5000; k++){ 
     j=rand()*3; 
     p[0]=(p[0]+vertices[j][0])/2.0; 
     p[1]=(p[1]+vertices[j][1])/2.0; 
     glVertex2fv(p); 
    } 

    glEnd(); 
    glFlush(); 
} 


int main(int argc, char** argv) { 
    glutInit(&argc,argv); 
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); 
    glutInitWindowSize(500,500); 
    glutInitWindowPosition(0,0); 
    glutCreateWindow("Sierpinski Gasket"); 
    glutDisplayFunc(display); 
    myinit(); 
    glutMainLoop(); 
} 

以下是編譯錯誤:對建築x86_64的

未定義的符號:

「_glutInit」,從引用:

_main in main.o 

「_glutInitDisplayMode」參考文獻:

_main in main.o 

「_glutInitWindowSize」,從引用:

_main in main.o 

「_glutInitWindowPosition」,從引用:

_main in main.o 

「_glutCreateWindow」,從引用:

_main in main.o 

「_glutDisplayFunc 「,參考文獻:

_main in main.o 

「_glutMainLoop」,從引用:

_main in main.o 

LD:符號(多個)未找到架構x86_64的

collect2:LD返回1個退出狀態

化妝[2 ]:* [dist/Debug/GNU-MacOSX/sierpinski]錯誤1

化妝[1]:* [.build設置]錯誤2

化妝:* [.build-IMPL]錯誤2

回答

12

您需要鏈接過剩框架。在項目屬性>鏈接>命令行> a​​ditional的選項,在你的代碼中指定

-framework GLUT 
+0

Thanks @Bavarious! – 2011-05-09 15:32:52

+4

而對於OpenGL函數的類似錯誤,還需要添加-framework OpenGL – Ixx 2012-09-02 18:57:33

0

小幅回調:

j = rand() % 3; 

,而不是rand() * 3;。由於顯而易見的原因,這給了seg故障

相關問題