Linux+Qt+OpenGL配置方案
早想在Linux下搞開發了,幾年前開始研究Linux遊戲編程,但是那時候的確沒有找到一個好的架構。現在遊戲引擎那麼多,跨平台已經成為遊戲引擎的一大賣點了,我們的選擇也逐漸增多,對於像我這樣遊戲的初學者來說,要在Linux下創出一份事業來,還是學習稍微底層的好。這裡我選擇了Linux+Qt+OpenGL作為遊戲開發的方案。
首先安裝Qt開發環境QtCreator就挺麻煩了(見我以前的部落格:http://blog.csdn.net/jiangcaiyang123/article/details/8018696),然後就是應對複雜的OpenGL開發環境的配置,真的很費心啊。
這裡我選擇了Mesa的OpenGL實現。如果在安裝Mesa的OpenGL有問題,可以查看這些文章:
http://yuanyu5237.iteye.com/blog/847574
http://www.cnblogs.com/leon032/
至於我自己,以前的Ubuntu9.10不被支援,所以我將這些軟體包都一個一個地下載了。這裡把這些檔案再打包,供給需要的朋友們:
安裝完了後,我們可以試試QtSDK檔案夾下Example的Hellogl。當初沒有安裝OpenGL開發環境的時候,它是不能找到gl.h檔案的。現在就可以找到並且能夠成功地編譯了。編譯後的效果如下:
什嗎?缺少qtlogo.h?好吧,我來告訴你。它在“Qt安裝目錄”/QtSDK/Examples/4.7/opengl/shared中,添加在項目中,一起編譯就好了。編譯成功運行結果如下所示:
下面就是另外一個例子的問題了。在構建例子程式cube時,遇到了這樣一個問題:glDeleteBuffers和glGenBuffers沒有定義,我也找了很久,最後在gamedev.net上找到瞭解決方案。原文章地址:http://www.gamedev.net/topic/422358-glgenbuffers-not-declared/
在geometryengine.cpp檔案前面的內含項目關聯性改成這樣:
#define GL_GLEXT_PROTOTYPES#include "geometryengine.h"#include <QVector2D>#include <QVector3D>#include <GL/glext.h>
再編譯,就不會出錯了。哈哈,原來是這樣啊。運行如下所示: