当前位置:编程学习 > C#/ASP.NET >>

求助:vs2008跑一段OpenGL程序“error LNK2019: 无法解析的外部符号”

代码如下(画个水壶):

//#include "gl\StdAfx.h"
#include "windows.h"
#include "GL\gl.h"
#include "GL\glu.h"
#include "GL\glut.h"
#include "GL\glaux.h"
/*
#pragma comment( lib, "glaux.lib" )
#pragma comment( lib, "glu32.lib" )
#pragma comment( lib, "OpenGL32.lib" )
*/
void myinit(void);
void CALLBACK myReshape(int w,int h);
void CALLBACK display(void);

void myinit(void)
{
    glClearColor(0.0, 0.0 ,0.0, 0.0);//设置背景为黑色
}

void CALLBACK display(void)
{
    glClear(GL_COLOR_BUFFER_BIT); //清除颜色缓冲区
    glColor3f(1.0,0.0,0.0);  //设置颜色
//    glRotatef(10.0,1.0,0.0,0.0);
//    glRotatef(10.0,0.0,1.0,0.0);
//    auxWireCube(1.0);
    auxWireTeapot(.6);  // 绘制茶壶
    glFlush(); // 强制绘图,不驻留缓存
}

void CALLBACK myReshape(int w,int h)
{        //重新设置视口
    glViewport(0,0,w,h);
}

void main( )
{       // 定义窗口特征:单缓存、RGBA颜色模式
    auxInitDisplayMode(AUX_SINGLE | AUX_RGBA);
    auxInitPosition(0,0,400,400); // 窗口尺寸
    auxInitWindow("最简单的OpenGL程序"); // 窗口标题
    myinit();
          // 当改变窗口尺寸、移动窗口等情况出现时,重定义窗口属性
    auxReshapeFunc(myReshape);
    auxMainLoop(display); //窗口属性改变后,调用display重绘
}

 

错误如下:

正在链接...
hello.obj : error LNK2019: 无法解析的外部符号 _auxWireTeapot@8,该符号在函数 _display@0 中被引用
hello.obj : error LNK2019: 无法解析的外部符号 _auxMainLoop@4,该符号在函数 _main 中被引用
hello.obj : error LNK2019: 无法解析的外部符号 _auxReshapeFunc@4,该符号在函数 _main 中被引用
hello.obj : error LNK2019: 无法解析的外部符号 _auxInitWindowW@4,该符号在函数 _main 中被引用
hello.obj : error LNK2019: 无法解析的外部符号 _auxInitPosition@16,该符号在函数 _main 中被引用
hello.obj : error LNK2019: 无法解析的外部符号 _auxInitDisplayMode@4,该符号在函数 _main 中被引用 --------------------编程问答-------------------- 这一段不要注释掉
#pragma comment( lib, "glaux.lib" )
#pragma comment( lib, "glu32.lib" )
#pragma comment( lib, "OpenGL32.lib" )
--------------------编程问答-------------------- 这个是类库中的函数没有找到。你把他们加载进去就好了。 --------------------编程问答-------------------- glaux 已经不支持了吧

用 glut 的函数替换吧

然后链接库文件那段还是需要的,对于 VC 来说 --------------------编程问答--------------------
引用楼主 sherlook 的回复:
代码如下(画个水壶):

//#include "gl\StdAfx.h"
#include "windows.h"
#include "GL\gl.h"
#include "GL\glu.h"
#include "GL\glut.h"
#include "GL\glaux.h"
/*
#pragma comment( lib, "glaux.lib" )
#pragma co……


你包含了。h,却注释了lib,这些lib在链接的时候会使用到到,
你也可以通过项目属性引入这些lib库 --------------------编程问答-------------------- 把要是有的库(lib)添加进去就可以了! --------------------编程问答-------------------- http://www.cnblogs.com/maxice/archive/2009/12/28/1634551.html
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,