OpenGL超级宝典(第五版)环境配置
Vs2008+winXP 后续会整理Ubuntu 12.04LTS下的配置作者:sunny_unix
1.各种库的配置
(1)glew
下载:https://sourceforge.net/projects/glew/files/glew/1.7.0/glew-1.7.0.zip/download
将include文件夹下的.h文件拷贝到C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL目录中(没有GL目录就自己创建一个,这里的具体路径视电脑上VS2008安装的位置而定)
将lib文件夹下的.lib文件拷贝到C:\Program Files\Microsoft Visual Studio 9.0\VC\lib目录中
将bin文件夹下的.dll文件拷贝到C:\Windows\System32目录中
(2)glut
下载OpenGL的glut类库:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
将.h文件拷贝到C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL目录中(没有GL目录就自己创建一个,这里的具体路径视电脑上VS2008安装的位置而定)
将.lib文件拷贝到C:\Program Files\Microsoft Visual Studio 9.0\VC\lib目录中
将.dll文件拷贝到C:\Windows\System32目录中
环境变量配置好后不必每个新建项目都按照下面这样配置。下面步骤仅限没有进行上述配置的用户。
2.配置项目环境
在需要用到openGL的每个项目中都需要执行以下步骤:
(1)项目——项目属性——配置属性——C/C++— —预处理器——预处理器定义,添加
GLUT_BUILDING_LIB
(2)项目——项目属性——配置属性——链接器——输入——附加依赖项,添加
glut32.lib Opengl32.lib Glu32.lib glew32.lib
3.应用举例
(1)先创建一个Win32控制台应用程序项目(文件——新建——项目——win32——win32控制台应用程序),在下面的名称处任意命名,假定是helloworld,然后点确定。之后点下一步,然后在附加选项的空项目之前打勾,之后点完成。
(2)配置项目属性:如上面所述2所述
(3)在解决方案管理器的源文件文件夹上点右键,添加——新建项——c++文件,任意命名,假定是Hello。
在导航窗格中的源文件分类下的Hello.cpp中输入如下代码:
[cpp]view plaincopyprint?
1. #include <windows.h> //这个必不可少
2. #include <gl/glut.h>
3. void display()
4. {
5. glClear(GL_COLOR_BUFFER_BIT);
6. glColor3f(1.0,1.0,1.0);
7. glBegin(GL_POLYGON);
8. glVertex3f(0.25,0.25,0.0);
9. glVertex3f(0.75,0.25,0.0);
10. glVertex3f(0.75,0.75,0.0);
11. glVertex3f(0.25,0.75,0.0);
12. glEnd();
13. glFlush();
14.}
15.void init()
16.{
17. glClearColor(0.0,0.0,0.0,0.0); //以黑色清屏
18. glMatrixMode(GL_PROJECTION); //glMatrixMode - 指定哪一个矩阵是当前矩阵
19. //GL_PROJECTION,对投影矩阵应用随后的矩阵操作
20. glLoadIdentity(); //该函数的功能是重置当前指定的矩阵为单位矩阵
21. glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
22.}
23.int main(int argc,char** argv)
24.
25.{
26. glutInit(&argc,argv);
27. glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
28. glutInitWindowSize(250,250);
29. glutInitWindowPosition(100,100);
30. glutCreateWindow("Hello OpenGL");
31. init();
32. glutDisplayFunc(display);
33. glutMainLoop();
34. return 0;
35.}
运行结果是个矩形,成功!
4.OpenGL超级宝典第五版的实例代码运行方法:
条件:下载--SB-WinSrc.rar和SB5.rar
SB-WinSrc.rar 解压后将share文件夹放在代码的../../下面(代码中的GLTools.h位置)后将SB5.rar解压后用已经配置好OpenGL的VS2008(上述配置过的那步)打开SB5\freeglut-2.6.0\VisualStudio2008Static下编译出freeglut_static.lib考到
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib下后就能运行实例代码了
5.OpenGL超级宝典第五版的教学代码运行方法:
条件:SB5.rar
SB5.rar解压后将SB5\Src\GLTools\include的头文件考到C:\Program Files\Microsoft Visual Studio 9.0\VC\include中。
将SB5\VisualStudio2008\GLTools\Release中的gltools.lib考到C:\Program Files\Microsoft Visual Studio 9.0\VC\lib中
运行时遇到错误的看下面:
1. 将C:\Program Files\Microsoft Visual Studio 9.0\VC\include\glut.h复制到
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL中
2. 静态库动态库编译时都选---项目-----属性----配置属性---C/C++----代码生成----运行时库都用和生成gltools.lib一样的-------多线程/MT
3. 因为生成gltools.lib需要glew库而第五版用的是OpenGL3.3所以glew要用1.9的版本而且要用生成gltools.lib的头文件(在src目录里面)的glew.h glxew.h wglew.h 覆盖原来的才行。
4. 现在打开示例代码后选---属性----配置属性---C/C++----代码生成----运行时库—MT后试试能不能运行,如果能运行那接着向下进行,如果失败那先停在这看看前面自己仔细在检查一遍解决完在向下进行。
5. 打开gltools项目将项目-----属性----配置属性---C/C++----代码生成----运行时库—多线程调试/MDT后再次编译一个MDT版本的库后一次将freeglut_static.lib和freeglut.lib一样也编译后覆盖原来的。
6. 再次打开刚才那个实例项目将项目-----属性----配置属性---C/C++----代码生成----运行时库—多线程调试/MDT后运行是否通过,通过就说明成功,忘了说一下运行前别忘了先清理一下项目!!。
关于后面的OpenEXR:
1)下载相关组件
在C盘下建立一个目录libs-x86,从OpenEXR官网http://www.openexr.com/downloads.html下载最新稳定版本:
IlmBase 1.02 source code release
OpenEXR 1.7.0 source code release
从网站http://www.winimage.com/zLibDll/index.html 下载zlib-1.2.5的源文件(用到其中的zlib.h和zconf.h)和dll文件:
zlib125.zip
zlib125dll.zip
这里需要说明的是,OpenEXR1.7.0用到的zlib版本为zlib-1.2.5,下载更新的版本会引起错误。
2)将下载文件解压到目录C:/libs-x86下
打开c:/libx-x86/ilmbase-1.0.2/vc/vc8/IlmBase/IlmBase.sln,选择Tools->VisualStudio Command Prompt,在打开的DOS界面输入:
cd c:\libs-x86\ilmbase-1.0.2\Half
cl eLut.cpp
cl toFloat.cpp
eLut > eLut.h
toFloat > toFloat.h
生成相应的文件。
3)选择Debug配置,编译解决方案
4)选择Release配置,编译解决方案
5)此时在C盘下创建了一个目录C:\Deploy,目录下有lib,include,bin三个子目录。
6)复制zlib.h和zconf.h从目录c:\libs-x86\zlib125到目录c:\Deploy\include
复制zdllwapi.lib和zlibwapi.exp从c:\libs-x86\zlib125dll\dll32到C:\Deploy\lib\Win32\Debug
复制zdllwapi.lib和zlibwapi.exp从c:\libs-x86\zlib125dll\dll32到C:\Deploy\lib\Win32\Release
复制zdllwapi.dll从c:\libs-x86\zlib125dll\dll32到C:\Deploy\bin\Win32\Debug
复制zdllwapi.dll从c:\libs-x86\zlib125dll\dll32到C:\Deploy\bin\Win32\Release
在VS2010中打开C:\libs-x86\openexr-1.7.0\vc\vc8\OpenEXR\OpenEXR.sln
选择Debug配置,选择ProjectIlmImf,右键ProjectOnly->Build OnlyIlmImf,然后再Build整个解决方案。
选择Release配置,选择ProjectIlmImf,右键ProjectOnly->Build OnlyIlmImf,然后再Build整个解决方案。
遇到问题及解决方案:
1)在Debug模式下,LINK : fatal error LNK1104: cannot open file'..\Win32\Debug\IlmImf.map'
解决方法:IlmImf右键->Properties->Linker->General->EnableIncremental Linking,设置为No。
之后考到相关目录就行了,还有后面代码可能除了有问题还有就是你的电脑支持的opengl版本,太低的程序也不能运行!!!
上述方法仅限初学者学习OpenGL超级宝典(第五版)读者可能遇到的问题,本人并不是老鸟为大家节省时间而已学习时没必要按书上每次都要加额外库。如果开发发布版本代码可以参见书第一章节步骤这里直接略过。
OpenGL学习群:134952390
转载自:http://www.cppblog.com/longzxr/archive/2009/12/04/102565.html
今天调试OpenGl的源程序,编译通过,但一运行就提示,计算机丢失 glut32.dll文件,郁闷的不行,上网查了下,网上提供的绝大多是做法都是,先下载这个文件复制这个文件到 C:\WINDOWS\system 32中,但是照做了后发现依旧不行,折腾了一下午后,突然之间意识到可能是我新装的windows 7系统有关,而且因为装的是64位的,于是,试着将这个 glut32.dll复制到C:\WINDOWS中的SysWOW64的文件夹中,后来就全都ok了,唉,在此特记录下来,提醒以后的各位装了Win 7又装了Vc++ 6.0的各位朋友注意一下。
PS:刚开始接触OpenGl的时候难免会遇到一些问题,这些问题可能和程序无关,只是一些编译环境的设置和头文件的安装,特别整理了一下,如下:
(1)将gult32.dll,glut.dll复制到windows系统system32(如果是win 7 64位操作系统,则是C:\WINDOWS中的SysWOW64这个文件下)
(2)将gult32.lib,glut.lib复制到vc的lib目录下
(3)将gult.h复制到vc的include\GL下