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

And*_*ela 3 opengl macos 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();
}
Run Code Online (Sandbox Code Playgroud)

以下是编译错误:

架构x86_64的未定义符号:

"_glutInit",引自:

 _main in main.o
Run Code Online (Sandbox Code Playgroud)

"_glutInitDisplayMode",引自:

 _main in main.o
Run Code Online (Sandbox Code Playgroud)

"_glutInitWindowSize",引自:

 _main in main.o
Run Code Online (Sandbox Code Playgroud)

"_glutInitWindowPosition",引自:

 _main in main.o
Run Code Online (Sandbox Code Playgroud)

"_glutCreateWindow",引自:

 _main in main.o
Run Code Online (Sandbox Code Playgroud)

"_glutDisplayFunc",引自:

 _main in main.o
Run Code Online (Sandbox Code Playgroud)

"_glutMainLoop",引自:

 _main in main.o
Run Code Online (Sandbox Code Playgroud)

ld:找不到架构x86_64的符号

collect2:ld返回1退出状态

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

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

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

小智 13

您需要链接GLUT框架.在项目属性>链接器>命令行> Aditional选项中,指定

-framework GLUT
Run Code Online (Sandbox Code Playgroud)

  • 对于OpenGL函数的类似错误,还添加-framework OpenGL (4认同)