Fedora23上編譯openGL程序前的準備工作

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.h  gl.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>
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出現一個畫了白色矩形的窗口
發佈了359 篇原創文章 · 獲贊 99 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章