刚开始学OPENGL第一章,就被第一个程序给郁闷了
编译后显示的错误是:
-3.obj : error LNK2001: unresolved external symbol ___glutInitWithExit@12
1-3.obj : error LNK2001: unresolved external symbol ___glutCreateWindowWithExit@8
Debug/1-3.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.1-3.exe - 3 error(s), 0 warning(s)
我的源代码是:
#include<windows.h.>
#include<GL/gl.h>
#include<GL/glu.h>
#include"GL/glext.h"
#include<stdio.h>
#include<stdlib.h>
#include<GL/glut.h>
static GLfloat spin=0.0;void init(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glShadeModel(GL_FLAT);
}void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(spin,0.0,0.0,1.0);
glColor3f(1.0,1.0,1.0);
glRectf(-25.0,-25.0,25.0,25.0);
glPopMatrix();
glutSwapBuffers();
}void spindisplay(void)
{
spin=spin+2.0;
if(spin>360.0)
spin=spin-360.0;
glutPostRedisplay();
}void reshape(int w,int h)
{
glViewport(0,0,(GLsizei) w,(GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0,50.0,-50.0,-50.0,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}void mouse(int button,int state,int x,int y)
{
switch(button) {
case GLUT_LEFT_BUTTON:
if (state==GLUT_DOWN)
glutIdleFunc(spindisplay);
break;
case GLUT_MIDDLE_BUTTON:
if (state==GLUT_DOWN)
glutIdleFunc(NULL);
break;
default:
break;
}
}
//请求使用双缓存模式
//注册响应鼠标事件的回调函数
//
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}
编译后显示的错误是:
-3.obj : error LNK2001: unresolved external symbol ___glutInitWithExit@12
1-3.obj : error LNK2001: unresolved external symbol ___glutCreateWindowWithExit@8
Debug/1-3.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.1-3.exe - 3 error(s), 0 warning(s)
我的源代码是:
#include<windows.h.>
#include<GL/gl.h>
#include<GL/glu.h>
#include"GL/glext.h"
#include<stdio.h>
#include<stdlib.h>
#include<GL/glut.h>
static GLfloat spin=0.0;void init(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glShadeModel(GL_FLAT);
}void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(spin,0.0,0.0,1.0);
glColor3f(1.0,1.0,1.0);
glRectf(-25.0,-25.0,25.0,25.0);
glPopMatrix();
glutSwapBuffers();
}void spindisplay(void)
{
spin=spin+2.0;
if(spin>360.0)
spin=spin-360.0;
glutPostRedisplay();
}void reshape(int w,int h)
{
glViewport(0,0,(GLsizei) w,(GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0,50.0,-50.0,-50.0,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}void mouse(int button,int state,int x,int y)
{
switch(button) {
case GLUT_LEFT_BUTTON:
if (state==GLUT_DOWN)
glutIdleFunc(spindisplay);
break;
case GLUT_MIDDLE_BUTTON:
if (state==GLUT_DOWN)
glutIdleFunc(NULL);
break;
default:
break;
}
}
//请求使用双缓存模式
//注册响应鼠标事件的回调函数
//
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货