GLUT(OpenGL Utility Toolkit)是由Mark Kilgard开发的一个OpenGL应用工具包,是一个颇受OpenGL开发人员欢迎的库,它对窗口和事件的管理工作进行了标准化和简化。GLUT可以为我们简化打开窗口以及检测键盘或鼠标事件,同时它也提供了一些创建复杂图形(如球体、圆环、茶壶)的函数。
目前我能在网上找到的最新版本,是2001年的GLUT 3.7.6 for Win32版本,您可自行到如下网址下载:http://www.xmission.com/~nate/glut.html。在这个网站中,还有Nate Robins编写的一套OpenGL教学程序,可以通过让用户修改函数的参数来观看效果,网址如下:http://www.xmission.com/~nate/tutors.html。
最后,您可以到如下网址下载OpenGL红宝书(OpenGL编程指南)中的范例程序,来体验GLUT库的魅力: ftp://ftp.sgi.com/opengl/opengl14.zip。
一、在Microsoft Visual C++ 6中安装GLUT,以下步骤在Windows XP Professional , Microsoft Visual C++ 6 SP6中通过:
1、将glut-3.7.6-bin.zip下载后解压缩;
2、将glut32.dll文件拷贝到系统的System32(或System)目录下,我机器上的目录为:C:\WINDOWS\system32;
3、将glut.h文件拷贝到VC安装目录下的Include\GL文件夹下,我机器上的目录为:C:\Program Files\Microsoft Visual Studio\VC98\Include\GL;
4、将glut32.lib文件拷贝到VC安装目录下的Lib文件夹下,我机器上的目录为:C:\Program Files\Microsoft Visual Studio\VC98\Lib。
二、在Borland C++ Builder 6中安装GLUT,以下安装步骤在Windows XP Professional , Borland C++ Builder 6 Update 4中通过:
1、同上1;
2、同上2;
3、将glut.h文件拷贝到VC安装目录下的Include\GL文件夹下,我机器上的目录为:C:\Program Files\Borland\CBuilder6\Include\GL;
4、如果我们按照上4的步骤,同样把glut32.lib拷贝到BCB安装目录下的Lib文件夹下,我机器上的目录为:C:\Program Files\Borland\CBuilder6\Lib,看看有什么情况:
拷贝完成后,来测试一下,打开BCB,File-New-Other…New-Console Wizard,选择如下,确定:
然后用红宝书中cube.c (这是个透视投影的立方体)这段代码复制到工程中去(注意将#include "STDLIB.H"注释掉,因为和std命名空间中exit重名),然后运行,会发现一个链接错误:
[Linker Error] 'C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\GLUT32.LIB' contains invalid OMF record, type 0x21 (possibly COFF),在网上搜索了一下,原因是微软的Lib文件不是标准的OMF格式,所以BCB无法使用。
没关系,Borland给我们提供了一个工具,可以将微软VC的Lib转换成适合BCB的文件,这个命令行工具是IMPLIB.EXE,可以在BCB的安装目录\Bin文件夹下找到(我机器上是C:\Program Files\Borland\CBuilder6\Bin),它的参数是:
这下,可以解决问题了:
1) 将刚才拷贝进Lib文件夹下的glut32.lib删除,而将原glut压缩包中的glut32.dll拷贝到任一目录下,比如E:\,(已拷贝到System文件夹下的glut32.dll不要删除),然后进入Dos命令行,键入如下命令(注意后面的是待转换的源文件):
出现上述提示信息,我们就可以在E:\下发现一个新的文件glut32.lib。如果出现如下信息:
说明你当前目录下没有glut32.dll文件。
将新生成的glut32.lib拷贝到BCB安装目录的Lib文件夹下(CBuilder6\Lib),再次运行刚才的cube.c程序。
等等,还有错,[Linker Fatal Error] Fatal: Unable to open file 'GLU32.LIB',缺少GLU32.LIB文件?没关系,我们重复上述步骤就可以了。
2) 继续在命令行键入如下命令:
然后将E:\下新生成的glu32.lib拷贝到CBuilder6\Lib,再次运行程序,还有错,[Linker Fatal Error] Fatal: Unable to open file 'OPENGL32.LIB',汗,继续。
3) 键入命令:
再将E:\下新生成的opengl32.lib拷贝到CBuilder6\Lib,运行程序,[Linker Fatal Error] Fatal: Unable to open file 'WINMM.LIB',没完了。
4) 键入命令:
再将winmm.lib拷贝到CBuilder6\Lib,运行程序,终于成功了,擦把汗。
提示:如果你在键入IMPLIB glut32.lib glut32.dll时,出现失败,可以将glut压缩包中的glut32.def文件拷贝到E:\,尝试如下命令IMPLIB glut32.lib glut32.def。