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出現一個畫了白色矩形的窗口