分享

如何配置OpenGL库详解

 筱肆 2015-01-24

关于OpenGL和directx的争论一直没有停息过,我并不想告诉你哪个更好,但是比较公认的是OpenGL对于一个初学者更容易理解。下面主要说一下OpenGL的可配置(当然这很简单,但有时候库配置好了仍然出错,希望我的方法可以帮到大家)

  复制.dll文件(包括glu.dll,glut.dll glut32.lib opengl.dll四个文件)到系统盘c:\windows\system32中

  复制.h文件(包括gl.h glaux.h glext.h glu.h glut.h wglext.h六个文件)到Visual c++ 的安装目录下

以我的为例C:\program files\Microsoft visual stdio\VC98\include\GL下,一般都会有GL文件夹的,没有的话新建一个就行了。

  复制.lib文件(包括glaux.lib glu.lib glu32.lib glut.lib glut32.lib opengl.lib opengl32.lib 七个文件到C:\program files\Microsoft visual stdio\VC98\lib中

   然后就可以开始编写OpenGL程序了

   打开VC,新建一个 win32,console application 工程。我用的是中文版,点击“工程(project)”->“设置(setting)”,中选“连接(link)”在“对象\库模块”中添加“opengl32.lib glu32.lib  glaux.lib”中间用空格隔开。如何配置OpenGL库详解

 新建一个source Files 添加以下代码:

#include<GL\glut.h>
#include <stdlib.h>
void display()
{
 glClear(GL_COLOR_BUFFER_BIT);
 glBegin(GL_POLYGON);
   glVertex2f(-0.5,-0.5);
   glVertex2f(-0.5,0.5);
   glVertex2f(0.5,0.5);
   glVertex2f(0.5,-0.5);
 glEnd();
 glFlush();
}
void init()
{
 glClearColor(0.0,0.0,0.0,0.0);
 glColor3f(1.0,0.0,0.0);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluOrtho2D(-1.0,1.0,-1.0,1.0);
}
void myKeyboard(unsigned char key,int x,int y)
{
 if(key==27)exit(0);
}
int main(int argc, char** argv)
{
 glutInit(&argc,argv);
 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
 glutInitWindowSize(500,500);
 glutInitWindowPosition(0,0);
 glutCreateWindow("OpenGL程序");
 glutDisplayFunc(display);
 glutKeyboardFunc(myKeyboard);
 init();
 glutMainLoop();
 return 0;
}

看看运行结果:

   如何配置OpenGL库详解

一般来说这样就行了,但是我看到有很多网友按照上面的设置仍然不能运行出正确的OpenGL程序,出现以下错误:

error LNK2001: unresolved external symbol ___glutInitWithExit@12
到v.obj : error LNK2001: unresolved external symbol ___glutCreateWindowWithExit@8
Debug/大法官.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错

如果用的是gl.h等头文件也有可能出现以下错误:

c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : error C2144: syntax error : missing ';' before type 'void'
c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : error C2501: 'WINGDIAPI' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

如果不是库的问题就应该是路径设置

那么你可以试试以下方法:

    点击“开始”->"附件”->"命令提示符"输入"path"看看有没有VC的路径(如图):如何配置OpenGL库详解如果没有则进行设置,分别输入:set include=C:\Program Files\Microsoft Visual Studio\VC98\Include\GL(点击回车)
接着输入:set lib=C:\Program Files\Microsoft Visual Studio\VC98\Lib(点击回车)

(即:include和Lib文件的路径),这样就应该OK了。

 或者 在#inlcude<glut.h>之前加上#define GLUT_DISABLE_ATEXIT_HACK

感谢百度网友ponglang,在OpenGL方面对我的帮助很多。

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多