我是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
Thanks @Bavarious! – 2011-05-09 15:32:52
而對於OpenGL函數的類似錯誤,還需要添加-framework OpenGL – Ixx 2012-09-02 18:57:33