因作者的畢業設計會用到opengl的很多內容,所以需要重溫一下opengl程式設計。剛看了4章的藍色聖經,一路跌跌碰碰,偶然發現了這個文章,作者覺得就像辛勞的旅客發現綠洲一樣,所以拿來和大家分享一下。
opengl超級寶典(第五版)環境配置
vs2008+winxp 後續會整理ubuntu 12.04lts下的配置
sunny_unix
(1)glew
將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
將.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目錄中
環境變數配置好後不必每個新建專案都按照下面這樣配置。下面步驟僅限沒有進行上述配置的使用者。
在需要用到opengl的每個專案中都需要執行以下步驟:
(1)專案——專案屬性——配置屬性——c/c++— —預處理器——預處理器定義,新增
glut_building_lib
(2)glut32.lib opengl32.lib glu32.lib glew32.lib
(1)先建立乙個win32控制台應用程式專案(檔案——新建——專案——win32——win32控制台應用程式),在下面的名稱處任意命名,假定是helloworld,然後點確定。之後點下一步,然後在附加選項的空專案之前打勾,之後點完成。
(2)配置專案屬性:如上面所述2所述
(3)在解決方案管理器的原始檔資料夾上點右鍵,新增——新建項——c++檔案,任意命名,假定是hello。
在導航窗格中的原始檔分類下的hello.cpp中輸入如下**:
[cpp]view plain
copy
print?
1. #include //
這個必不可少
2. #include
3. void
display()
4.
15.void
init()
16.
23.intmain(intargc,char** argv)
24.25.
執行結果是個矩形,成功!
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下後就能執行例項**了
條件: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:
在c盤下建立乙個目錄libs-x86,從openexr官網
ilmbase 1.02 source code release
openexr 1.7.0 source code release
從**zlib125.zip
zlib125dll.zip
開啟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版本,太低的程式也不能執行!!!
c primer plus 第五版分享
本書全面講述了c語言程式設計的相關概念和知識。全書共17章。第1 2章學習c語言程式設計所需的預備知識。第3到15章介紹了c語言的相關知識,包括資料型別 格式化輸入輸出 運算子 表示式 流程控制語句 函式 陣列和指標 字串操作 記憶體管理 位操作等等,知識內容都針對c99標準 另外,第10章強化了對...
C Primer Plus 第五版 學習(一)
之前學習過c語言,當時大學時候的教材是譚浩強的那本,大學沒有認真學,現在又要重頭補。為了能細緻的學習c語言,為以後打下基礎,決定從頭學習c primer plus這個書。因為書後的程式設計習題沒有答案,所以在部落格上寫下 段 可能很簡單,很基礎,請各位不要嘲笑!也許你有更好的演算法請告訴我,或者我有...
C Primer第五版 練習11 33
練習11.33 實現你自己版本的單詞轉換程式。c primer第五版 練習11.33 2015 10 14 問題描述 練習11.33 實現你自己版本的單詞轉換程式。說明 把書上的程式自己再敲了一遍 include include include include include include usi...