sudo apt-get install mesa-common-dev mesademos libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
我是在新得利里面把上面那些一个个找出来装的,效果一样的,然后
新建个文件sample.cpp
1 /* light.c 2 此程序利用GLUT绘制一个OpenGL窗口,并显示一个加以光照的球。 3 */ 4 /* 由于头文件glut.h中已经包含了头文件gl.h和glu.h,所以只需要include 此文件*/ 5 # include <GL/glut.h> 6 # include <stdlib.h> 7 8 /* 初始化材料属性、光源属性、光照模型,打开深度缓冲区 */ 9 void init ( void ) 10 { 11 GLfloat mat_specular [ ] = { 1.0, 1.0, 1.0, 1.0 }; 12 GLfloat mat_shininess [ ] = { 50.0 }; 13 GLfloat light_position [ ] = { 1.0, 1.0, 1.0, 0.0 }; 14 15 glClearColor ( 0.0, 0.0, 0.0, 0.0 ); 16 glShadeModel ( GL_SMOOTH ); 17 18 glMaterialfv ( GL_FRONT, GL_SPECULAR, mat_specular); 19 glMaterialfv ( GL_FRONT, GL_SHININESS, mat_shininess); 20 glLightfv ( GL_LIGHT0, GL_POSITION, light_position); 21 22 glEnable (GL_LIGHTING); 23 glEnable (GL_LIGHT0); 24 glEnable (GL_DEPTH_TEST); 25 } 26 27 /*调用GLUT函数,绘制一个球*/ 28 void display ( void ) 29 { 30 glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 31 glutSolidSphere (1.0, 40, 50); 32 glFlush (); 33 } 34 35 36 /* 定义GLUT的reshape函数,w、h分别是当前窗口的宽和高*/ 37 void reshape (int w, int h) 38 { 39 glViewport (0, 0, (GLsizei) w, (GLsizei) h); 40 glMatrixMode (GL_PROJECTION); 41 glLoadIdentity ( ); 42 if (w <= h) 43 glOrtho (-1.5, 1.5, -1.5 * ( GLfloat ) h / ( GLfloat ) w, 1.5 * ( GLfloat ) h / ( GLfloat ) w, -10.0, 10.0 ); 44 else 45 glOrtho (-1.5 * ( GLfloat ) w / ( GLfloat ) h, 1.5 * ( GLfloat ) w / ( GLfloat ) h, -1.5, 1.5, -10.0, 10.0); 46 glMatrixMode ( GL_MODELVIEW ); 47 glLoadIdentity ( ) ; 48 } 49 50 51 /* 定义对键盘的响应函数 */ 52 void keyboard ( unsigned char key, int x, int y) 53 { 54 /*按Esc键退出*/ 55 switch (key) 56 { 57 case 27: 58 exit ( 0 ); 59 break; 60 } 61 } 62 63 64 int main(int argc, char** argv) 65 { 66 /* GLUT环境初始化*/ 67 glutInit (&argc, argv); 68 /* 显示模式初始化 */ 69 glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); 70 /* 定义窗口大小 */ 71 glutInitWindowSize (300, 300); 72 /* 定义窗口位置 */ 73 glutInitWindowPosition (100, 100); 74 /* 显示窗口,窗口标题为执行函数名 */ 75 glutCreateWindow ( argv [ 0 ] ); 76 /* 调用OpenGL初始化函数 */ 77 init ( ); 78 /* 注册OpenGL绘图函数 */ 79 glutDisplayFunc ( display ); 80 /* 注册窗口大小改变时的响应函数 */ 81 glutReshapeFunc ( reshape ); 82 /* 注册键盘响应函数 */ 83 glutKeyboardFunc ( keyboard ); 84 /* 进入GLUT消息循环,开始执行程序 */ 85 glutMainLoop( ); 86 return 0; 87 }
然后
g++ sample.cpp -o sample -lglut
./sample
没错的话就ok 啦
[转] http://blog.csdn.net/nauty_li/article/details/2217625