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>
再编译,就不会出错了。哈哈,原来是这样啊。运行截图如下所示: