怎樣解決CodeBlocks執行VS編寫的OpenGL專案時遇到的各種問題的
終於忍不了VS2010的龐大與複雜,想尋覓一個小巧可愛的IDE,開源的,滿足個人程式設計練習的需要。
近日在一計算機專業大神(二春)的推薦下,結識到Code::Blocks,簡稱CB吧,官方主頁在這裡——
http://www.codeblocks.org/
CB簡約、輕量,安裝也超級方便,好想趕快摸透,來永遠替換其他龐大的IDE。但是最近關於圖形學的程式設計問題讓我懷疑是不是不能完全依靠它。
難道CB不是真正我想要的嗎!!!???為什麼?! = =
問題如下。
P.S.關於CB的OpenGL環境的搭建留在另一篇文章裡備忘了~
我配置好了所有類庫、標頭檔案、動態連結庫檔案,並且測試成功。
但是當我匯入OpengGL的 visual studio工程後,問題就來了。
我的操作是這樣的——
1.匯入visual studio 工程。
我匯入的示例程式是 [OpenGL程式設計精粹] 一書中的OOGLFrame示例原碼。
2.右鍵選擇標頭檔案屬性,點上compile file、link file
3.編譯執行一下
編譯很順利,但沒有執行,結果如下
是不是CodeBlocks無法駕馭現有的visual studio 工程呢?不能忍啊!
於是求助谷歌。在CB論壇上發現相關提問,連結如下
http://forums.codeblocks.org/index.php?topic=8513.0
看後依然不清晰,以致問題的解決一度擱淺。我的最終解決如下,出現問題的原因也列在其中。
1.新建一個GLUT專案,下圖第三行第三個
注意!一定不要再import VS project了!因為我的理解是,雖然已經在CB安裝資料夾下配置好該有的GL檔案,但CB需要相應的新建的project型別來決定對這些檔案的呼叫!之前的作法導致的是無法找到相應的類庫,出現錯誤如下
而之前我的錯誤的解決方法,就是上文所寫的,右鍵選擇標頭檔案屬性,點上compile file、link file,這就出現了之前的新問題。
這是因為我這樣做,預編譯了.h標頭檔案,生成了.h.gch檔案,而程式執行連結的標頭檔案是.h檔案,這就造成了紊亂。標頭檔案的預處理是完全沒有必要的。所以compile file選項不
應打鉤。只留下link file選項打鉤也是不對的,會出現下圖
這其實可以理解了。既然沒有了預處理,上哪去link .h.gch.檔案呢?
所以,如果你出現以上問題,一定去掉兩個勾,並刪掉專案根資料夾裡已經不小心生成的.h.gch檔案,再按如下操作就行了。
2.上文繞了個大圈子解釋了問題出現的原因。下面繼續。
新建了空的GLUT project之後,會自帶一個source資料夾,裡面有個main樣例程式。刪掉即可(右鍵選remove)
右鍵project名,add OOGLFrame專案裡的需要的檔案,檔案樹就出來了
這樣再編譯執行,你的VS編寫的OpenGL專案就被CB成功帶起來啦!