Fedora下OpenGl开发环境配置

开发OpenGL工程需要3个库文件和对应的头文件:

libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h

这些库在linux系统中默认都有,使用locate命令验证都在标准库目录(/usr/lib)下:

[root@localhost GL]# locate libglut.so /usr/lib/libglut.so.3
/usr/lib/libglut.so.3.9.0

[root@localhost GL]# locate libGLU.so /usr/lib/libGLU.so /usr/lib/libGLU.so.1
/usr/lib/libGLU.so.1.3.070700

[root@localhost GL]# locate libGL.so /usr/lib/libGL.so /usr/lib/libGL.so.1

/usr/lib/libGL.so.1.2

但是头文件是没有的,安装开发包之前使用locate验证无法找到相关文件。

安装开发包(需要3个开发包):

yum install mesa-libGL-devel mesa-libGLU-devel //这两个是opengl核心库 yum install freeglut-devel //OpenGL Utility ToolKit

安装完之后用rpm命令验证安装包和查询安装的文件以及安装在什么位置(以glut-devel为例):

到此安装结束
[root@localhost etc]# rpm -qa | grep glut

freeglut-devel-2.6.0-1.fc12.i686

[root@localhost etc]# rpm -ql freeglut-devel
/usr/include/GL/freeglut.h /usr/include/GL/freeglut_ext.h /usr/include/GL/freeglut_std.h /usr/include/GL/glut.h /usr/lib/libglut.so

由上可见安装freeglut之后在/usr/include/GL/目录下添加了glut.h,在/usr/lib/下替换了libglut.so文件。

可以在/usr/include/GL下使用ls验证一下安装的头文件:

[root@localhost GL]# ls freeglut_ext.h freeglut_std.hgl.h glu.h glut.h glx.h glx_mangle.h glxproto.h internal
freeglut.h glext.h gl_mangle.h glu_mangle.h glxext.h glxint.h glxmd.h glxtokens.h

好了,相关库和头文件都一切就绪,我们可以来写一个最简单的例子程序:

#include <GL/glut.h>voiddisplay(){
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
    glVertex2f(-0.5,-0.5);
    glVertex2f(-0.5,0.5);
    glVertex2f(0.5,0.5);
    glVertex2f(0.5,-0.5);
    glEnd();
    glFlush();
} intmain(int argc,char *argv[]){
    glutInit(&argc,argv);
    glutCreateWindow("Simple");
    glutDisplayFunc(display);
    glutMainLoop(); return0;

}

使用如下命令编译:

gcc simple.c -o app -lglut -lGL -lGLU -lm -lX11 -lm

运行./app出现一个画了白色矩形的窗口: