《OpenGL编程精髓》光盘示例程序运行环境配置

来源:互联网 发布:比尔盖茨 乔布斯 知乎 编辑:程序博客网 时间:2024/04/27 14:54


===============================================================

【问题】

#include <gl\glaux.h>

这一行缺少文件,导致编译不过


===============================================================

【了解】

后来搜索以后才知道glaux是《OpenGL 编程指南》(red book)里使用的小框架,它的作用是:

封装了windows的一些函数,例如加载读取bitmap

如auxSolidTeapot函数可以直接绘制一个茶壶

如auxInitWindowA函数封装了windows窗口的初始化

如auxMouseFunc函数封装了鼠标事件的输入

如auxMainLoop函数封装了程序运行函数


后来发现与其使用glaux其实不如使用glut,glut封装得更好,功能也更强大,而且是开源的。

没办法,谁叫示例里使用的是glaux呢?


===============================================================

【下载】

如何下载呢?大致在网上搜索了一下发现CSDN里有一个免费下载地址:

glaux库下载:

http://download.csdn.net/detail/li235456789/8224459



===============================================================

【使用】


--------------------------------------------------------------------------------------------------------------

[第一种摆放方法]

找到windwos sdk的安装目录,

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A


C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\gl
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
发现每个特定版本sdk里的文件夹又分别分为x86的和x64的:

把解压后的几个文件分别拷贝到对应的目录里:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\gl\GLAUX.H
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\GLAUX.LIB

C:\Windows\System32\glaux.dll

--------------------------------------------------------------------------------------------------------------

[第二种摆放方法]


OpenGL实例编程精粹\gl\glaux.h

OpenGL实例编程精粹\gl\glaux.lib

OpenGL实例编程精粹\gl\glaux.dll


进入工程:

OpenGL实例编程精粹\第7章\DrawBitmap\DrawBitmap.sln


添加:

Configuration Properties -> C/C++ -> General -> Additional Include Directories -> $(ProjectDir)..\..\

Configuration Properties -> Linker -> General -> Additional Library Directories -> $(ProjectDir)..\..\gl

Configuration Properties -> Linker -> Input -> Additional Dependencies -> glaux.lib

或者在.cpp里上方添加:

#pragma comment(lib, "glaux.lib")


运行,ok!


===============================================================


如果在draw函数中调用了glaux的函数:

auxSolidTeapot(1.0f);


编译的时候就会产生错误导致编译不过:

error LNK2026: module unsafe for SAFESEH image.


Configuration Properties -> Linker -> Advanced -> Image Has Safe Exception Handlers -> Yes (/SAFESEH)
更改为:
Configuration Properties -> Linker -> Advanced -> Image Has Safe Exception Handlers -> No(/SAFESEH:NO)


重新编译,这样就可以通过编译了。


===============================================================


0 0