主题:关于OpenGL的问题
小弟刚开始学习opengl就遇到了问题
我参照书上说的将gl的lib文件和.h文件都放到了规定的地方
前几天程序也可以运行的,但是不知道怎么的,这几天程序就不能运行了,每次都说无法解析的外部符号之类的问题,不知道是我程序的问题还是我的头文件的问题啊
以下是程序:
// gltest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<gl/glut.h>
GLfloat shield[5][3]={{5,0,0},{8,20,0},{0,25,0},{-8,20,0},{-5,0,0}};
GLfloat colors[4][3]={{1,0,0},{0,1,0},{0,0,1},{1,1,0}};
void draw_shield(void){
int i;
glBegin(GL_POLYGON);
for(int i=0;i<5;i++)
glVertex3fv(shield[i]);
glEnd;
}
void draw_ring(void){
int i;
for(int r=0;r<360;r+=15){
glPushMatrix();
glRotated(r,0,0,1);
glTranslated(0,50,0);
draw_shield();
glPopMatrix();
}
}
void display(void){
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
int i;
for(int i=0;i<4;i++){
glColor3fv(colors[i]);
glPushMatrix();
glTranslated((i-3)*50,(i-3)*50,-i*5);
glScaled(i+1,i+1,i+1);
draw_ring();
glPopMatrix();
}
glFlush();
}
void main(int argc,char* *argv){
glutInitDisplayMode(GLUT_RGB|GLUT_DEPTH);
glutInitWindowSize(600,600);
glutInitWindowPosition(200,100);
glutCreateWindow("CTM stack");
glClearColor(0.0,0.0,0.0,0.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-300,300,-300,300,0,100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glutDisplayFunc(display);
glutMainLoop();
}
每次运行都出错~
>gltest.obj : error LNK2019: 无法解析的外部符号 _glVertex3fv,该符号在函数 "void __cdecl draw_shield(void)" (?draw_shield@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glBegin,该符号在函数 "void __cdecl draw_shield(void)" (?draw_shield@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glPopMatrix,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glTranslated,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glRotated,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glPushMatrix,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glFlush,该符号在函数 "void __cdecl display(void)" (?display@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glScaled,该符号在函数 "void __cdecl display(void)" (?display@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glColor3fv,该符号在函数 "void __cdecl display(void)" (?display@@YAXXZ) 中被引用
省略了很多。。。实在是找不到问题所在,希望高人能解答下
我参照书上说的将gl的lib文件和.h文件都放到了规定的地方
前几天程序也可以运行的,但是不知道怎么的,这几天程序就不能运行了,每次都说无法解析的外部符号之类的问题,不知道是我程序的问题还是我的头文件的问题啊
以下是程序:
// gltest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<gl/glut.h>
GLfloat shield[5][3]={{5,0,0},{8,20,0},{0,25,0},{-8,20,0},{-5,0,0}};
GLfloat colors[4][3]={{1,0,0},{0,1,0},{0,0,1},{1,1,0}};
void draw_shield(void){
int i;
glBegin(GL_POLYGON);
for(int i=0;i<5;i++)
glVertex3fv(shield[i]);
glEnd;
}
void draw_ring(void){
int i;
for(int r=0;r<360;r+=15){
glPushMatrix();
glRotated(r,0,0,1);
glTranslated(0,50,0);
draw_shield();
glPopMatrix();
}
}
void display(void){
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
int i;
for(int i=0;i<4;i++){
glColor3fv(colors[i]);
glPushMatrix();
glTranslated((i-3)*50,(i-3)*50,-i*5);
glScaled(i+1,i+1,i+1);
draw_ring();
glPopMatrix();
}
glFlush();
}
void main(int argc,char* *argv){
glutInitDisplayMode(GLUT_RGB|GLUT_DEPTH);
glutInitWindowSize(600,600);
glutInitWindowPosition(200,100);
glutCreateWindow("CTM stack");
glClearColor(0.0,0.0,0.0,0.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-300,300,-300,300,0,100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glutDisplayFunc(display);
glutMainLoop();
}
每次运行都出错~
>gltest.obj : error LNK2019: 无法解析的外部符号 _glVertex3fv,该符号在函数 "void __cdecl draw_shield(void)" (?draw_shield@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glBegin,该符号在函数 "void __cdecl draw_shield(void)" (?draw_shield@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glPopMatrix,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glTranslated,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glRotated,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glPushMatrix,该符号在函数 "void __cdecl draw_ring(void)" (?draw_ring@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glFlush,该符号在函数 "void __cdecl display(void)" (?display@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glScaled,该符号在函数 "void __cdecl display(void)" (?display@@YAXXZ) 中被引用
1>gltest.obj : error LNK2019: 无法解析的外部符号 _glColor3fv,该符号在函数 "void __cdecl display(void)" (?display@@YAXXZ) 中被引用
省略了很多。。。实在是找不到问题所在,希望高人能解答下