Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2116807
  • 博文数量: 438
  • 博客积分: 3871
  • 博客等级: 中校
  • 技术积分: 6075
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-10 00:11
个人简介

邮箱: wangcong02345@163.com

文章分类

全部博文(438)

文章存档

2017年(15)

2016年(119)

2015年(91)

2014年(62)

2013年(56)

2012年(79)

2011年(16)

分类: LINUX

2016-06-24 16:56:42

1. 环境搭建
a.安装opengl的库
cong@msi:~$ sudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev
cong@msi:~$ sudo apt-get install freeglut3-dev
b. 查看
  1. a.查看libgl库及头文件
  2. cong@msi:~$ ls /usr/lib/libGL*
  3. ls: cannot access /usr/lib/libGL*: No such file or directory
  4. cong@msi:~$ ls /usr/lib/x86_64-linux-gnu/libGL*
  5. /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10 /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0 /usr/lib/x86_64-linux-gnu/libGLU.so
  6. /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0 /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libGLU.so.1
  7. /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10 /usr/lib/x86_64-linux-gnu/libGLU.a /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1

  8. cong@msi:~$ ls /usr/include/GL/{gl,glu}.h
  9. /usr/include/GL/gl.h /usr/include/GL/glu.h


  10. b. 查看glut库及头文件
  11. cong@msi:~$ ls /usr/lib/libglut*
  12. ls: cannot access /usr/lib/libglut*: No such file or directory
  13. cong@msi:~$ ls /usr/lib/x86_64-linux-gnu/libglut*
  14. /usr/lib/x86_64-linux-gnu/libglut.a /usr/lib/x86_64-linux-gnu/libglut.so /usr/lib/x86_64-linux-gnu/libglut.so.3 /usr/lib/x86_64-linux-gnu/libglut.so.3.9.0

  15. cong@msi:~$ ls /usr/include/GL/glut.h
  16. /usr/include/GL/glut.h
c.opengl版本查看
  1. cong@msi:~$ sudo apt-get install mesa-utils
  2. cong@msi:~$ glxinfo | grep "OpenGL"
  3. OpenGL vendor string: Intel Open Source Technology Center
  4. OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop
  5. OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.3
  6. OpenGL core profile shading language version string: 3.30
  7. OpenGL core profile context flags: (none)
  8. OpenGL core profile profile mask: core profile
  9. OpenGL core profile extensions:
  10. OpenGL version string: 3.0 Mesa 10.1.3           -->opengl version
  11. OpenGL shading language version string: 1.30     -->shader version
  12. OpenGL context flags: (none)
  13. OpenGL extensions:
2.测试demo
2.1 hello.c
  1. #include <GL/glut.h>
  2. void display()
  3. {
  4.     glClear(GL_COLOR_BUFFER_BIT);                   //现在还不太了解这个,暂时理解为默认的颜色是黑色,用黑色刷新一下窗口
  5.     glRectf(-0.5f,-0.5f, 0.5f, 0.5f);               //画一个矩形,opengl的坐标范围(-1,1),坐标原点在窗口的中心
  6.     glFlush();                                      //立即刷新到窗口上  
  7. }
  8. int main(int argc, char* argv[])
  9. {
  10.     glutInit(&argc, argv);                          //对GLUT进行初始化
  11.     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);    //设置显示方式,GLUT_RGB-->使用RGB颜色,GLUT_SINGLE-->使用单缓冲
  12.     glutInitWindowPosition(0, 0);                   //设置窗口在屏幕中的位置
  13.     glutInitWindowSize(300, 300);                   //设置窗口的大小
  14.     glutCreateWindow("OpenGL 3D View");             //创建窗口,其中的参数是标题
  15.     glutDisplayFunc(display);                       //设置刷新窗口的回调函数
  16.     glutMainLoop();                                 //现在还不太了解这个,暂时理解为sleep(100) 
  17.     return 0;
  18. }

2.2 Makefile
  1. EXE=hello
  2. CC=gcc
  3. SRC=$(wildcard *.c)
  4. #OBJ=$(SRC:.c=.o)
  5. OBJ=$(patsubst %.c,%.o,$(SRC))
  6. DEP=$(patsubst %.c,.%.d,$(SRC))
  7. CFLAGS=-g -O0
  8. LDFLAGS=-lGL -lGLU -lglut
  9. $(EXE):$(OBJ)
  10.     $(CC) $^ -o $@ $(LDFLAGS)

  11. $(DEP):.%.d:%.c
  12.     @set -e; rm -f $@; \
  13.     $(CC) -MM $< > $@.$$$$; \
  14.     sed 's,/($*/)/.o[ :]*,/1.o $@ : ,g' < $@.$$$$ > $@; \
  15.     rm -f $@.$$$$

  16. -include $(DEP)
  17. clean:
  18.     @rm $(EXE) $(OBJ) $(DEP) -f
2.3 运行结果
是一个矩形
2.4 下载
1hello.rar(下载后改名为1hello.tar.gz)

参考文章:
Building OpenGL/GLUT Programs
~sugih/courses/eecs487/glut-howto/
OpenGl env setup ubuntu14.04

OpenGL入门学习
http://www.cnblogs.com/crazyxiaom/articles/2073586.html

阅读(1694) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~