首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

为啥运行成功的代码新建一个工程就出错

2012-07-27 
为什么运行成功的代码新建一个工程就出错?下面是我的一段OpenGL代码,画一个三角形。这个代码的工程文件以前

为什么运行成功的代码新建一个工程就出错?
下面是我的一段OpenGL代码,画一个三角形。这个代码的工程文件以前运行成功,现在打开运行也成功。
OpenGl是按照这篇文章配置的,
http://blog.csdn.net/xiajun07061225/article/details/6869040
。应该没有问题。
但是我现在新建一个工程,把代码完全复制过来就出错。我记得当时也没有另外配置什么东西啊,为什么现在新建工程代码不变也出错呢?
下面是代码:

C/C++ code
#include <GL/glut.h>void init(){    glClearColor(0.0,0.0,0.0,0.0);    glShadeModel(GL_SMOOTH);//渲染模式}void triangle(){    glBegin(GL_TRIANGLES);    glColor3f(1.0,0.0,0.0);    glVertex2f(5.0,5.0);    glColor3f(0.0,1.0,0.0);    glVertex2f(25.0,5.0);    glColor3f(0.0,0.0,1.0);    glVertex2f(5.0,25.0);    glEnd();}void display(){    glClear(GL_COLOR_BUFFER_BIT);    triangle();    glFlush();}void reshape(int w,int h){    glViewport(0,0,(GLsizei)w,(GLsizei)h);    glMatrixMode(GL_PROJECTION);    glLoadIdentity();    if(w <= h)        gluOrtho2D(0.0,30.0,0.0,30.0 * (GLfloat)h / (GLfloat)w);//定义二维投影矩阵    else        gluOrtho2D(0.0,30.0 * (GLfloat)w / (GLfloat)h,0.0,30.0);    glMatrixMode(GL_MODELVIEW);}int main(int argc,char** argv){    glutInit(&argc,argv);    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);    glutInitWindowSize(500,500);    glutInitWindowPosition(100,100);    glutCreateWindow(argv[0]);    init();    glutDisplayFunc(display);    glutReshapeFunc(reshape);    glutMainLoop();    return 0;}


出错信息:
1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------
1>正在编译...
1>Test.cpp
1>正在链接...
1>Test.obj : error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
1>Test.obj : error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用
1>E:\学习\程序练习\Test\Debug\Test.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>生成日志保存在“file://e:\学习\程序练习\Test\Test\Debug\BuildLog.htm”
1>Test - 3 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

请教大侠,这是为什么呢?

[解决办法]
不大明白,请高手解决吧
[解决办法]
有没有使用外部引用的库啊?在以前那个工程里右键看一下项目属性,链接器
[解决办法]
“在#include <GL/glut.h>前面加上了一句:
#define GLUT_DISABLE_ATEXIT_HACK”

http://blog.sina.com.cn/s/blog_639bd2d00100vu7d.html
[解决办法]
Note that the __glut*WithExit routines should NEVER be called directly.
To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK.
在4楼的地址找到这句话。

热点排行