《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.0AC:\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)
重新編譯,這樣就可以通過編譯了。
===============================================================