最近两天一直在linux下搞SDL,折腾了两天,终于搞定;
现象:SDL的程序在某些linux下可以正常工作,但在另外一些linux下不能正常工作,具体表现为文字和图像不能同时显示,只要同时显示,必定会报segment fault。
最后查明原因,没有安装opengl的库,需要安装,具体详见:
原文地址:http://blog.sina.com.cn/s/blog_45ca7a550100azph.html
今天在linux上弄了一下openGL,其实想入门还是很简单的,后面的路就要自己慢慢去摸索了,下面的内容也是在网上找到的,整理一下一备用。
在linux下,只要装了Mesa和freeglut就可以了。
首先需要安装OpenGL的开发环境。现在Linux下有很多OpenGL的实现,Fedora 7(本人使用CentOS6.5,下同)中已经附带了Mesa,这是OpenGL一个开源的实现。安装Fedora时如果选中了开发环境,那么Mesa可能就已经安装好了。如果你和我一样安装的时候没有选择开发,那么,可以通过yum来在线安装Mesa:
首先查找Mesa相关的包:
返回结果应该是和Mesa相关的Lib以及开发包。
然后安装这些包:
安装完成后,我们就拥有了一个基础的OpenGL开发环境了。
但是仅仅是基础的开发环境是不够的,一般来讲,我们还要安装一个叫做Glut的库,这是一个OpenGL的辅助库,可以让我们创建与平台无关的OpenGL窗口。因此,安装Glut也是必要的。 Glut有很多种实现,在这里我用的是freeglut,是我在Fedore 7的源中找到的。当然还有其他的实现。
查找Glut库的命令如下:
返回结果是
然后可以从结果中选择自己偏爱的库进行安装,我选的是freeglut,安装命令是
-------
The following is the installed packages on my desktop:
# rpm -qa|grep -i mesa
MesaGLw-7.0.3-36.1
Mesa-7.1-37
Mesa-devel-7.1-37
MesaGLw-devel-7.0.3-36.1
# rpm -qa|grep -i freeglut
freeglut-060903-133.1
freeglut-devel-060903-133.1
安装成后,我们就可以开始写我们第一个Linux下的OpenGL程序了。
#include <GL/glut.h>
void display()
{
}
int main(int argc,char **argv)
{
}
编译并运行:
注意:此处本人实验时,去掉了-lX11编译选项,还未来得及求证为什么,但是不妨碍最终结果。
至此第一个Linux下的OpenGL程序便诞生了..
Enjoy it !