Fedora23上编译openGL程序前的准备工作

来源:互联网 发布:linux文件强制锁 编辑:程序博客网 时间:2024/06/06 02:31

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 glutfreeglut-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]# lsfreeglut_ext.h  freeglut_std.h  gl.h         glu.h         glut.h    glx.h     glx_mangle.h  glxproto.h   internalfreeglut.h      glext.h         gl_mangle.h  glu_mangle.h  glxext.h  glxint.h  glxmd.h       glxtokens.h

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

#include <GL/glut.h>void display(){    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();}int main(int argc,char *argv[]){    glutInit(&argc,argv);    glutCreateWindow("Simple");    glutDisplayFunc(display);    glutMainLoop();    return 0;}

使用如下命令编译:

gcc simple.c -o app -lglut -lGL -lGLU -lm -lX11 -lm
运行./app出现一个画了白色矩形的窗口
原创粉丝点击