1. 程式人生 > >《OpenGL程式設計精髓》光碟示例程式執行環境配置

《OpenGL程式設計精髓》光碟示例程式執行環境配置

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

【問題】

#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)

重新編譯,這樣就可以通過編譯了。

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