回 帖 发 新 帖 刷新版面

主题:关于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) 中被引用


省略了很多。。。实在是找不到问题所在,希望高人能解答下

回复列表 (共1个回复)

沙发

感觉是找不到库文件

我来回复

您尚未登录,请登录后再回复。点此登录或注册