架构x86_64的未定义符号:“_ glutInit”,引自:main.o中的_main / Mac上的Netbeans

时间:2011-05-08 04:59:50

标签: macos opengl netbeans

我是OpenGL的初学者,“我的”第一个程序是这个Sierpinski Gasket。我在MacBook Pro上使用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退出状态

     

make [2]: * [dist / Debug / GNU-MacOSX / sierpinski]错误1

     

make [1]: * [.build-conf]错误2

     

make: * [。build-impl]错误2

2 个答案:

答案 0 :(得分:12)

您需要链接GLUT框架。在项目属性&gt;链接器&gt;命令行&gt;附加选项,指定

-framework GLUT

答案 1 :(得分:0)

代码中的轻微修正:

j = rand() % 3;

而不是rand() * 3;。由于显而易见的原因,这给了seg错误。