http://wiki.ubuntu-tw.org/index.php?title=Howto_Install_OpenGL_Development_Environment

前言

OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上。OpenGL 让程式开发人员不需要考虑到各种显示卡底层运作是否相同的问题,硬体由 OpenGL 核心去沟通,因此只要显示卡支援 OpenGL,那么程式就不需要重新再移植,而程式开发人员也不需要重新学习一组函式库来移植程式。

安装

首先不可或缺的就是编译器与基本的函式库,如果系统没有安装的话,依照下面的方式安装:

  1. $ sudo apt-get install build-essential

安装OpenGL Library

  1. $ sudo apt-get install libgl1-mesa-dev

安装OpenGL Utilities

  1. $ sudo apt-get install libglu1-mesa-dev

OpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。

安装OpenGL Utility Toolkit

  1. $ sudo apt-get install libglut-dev

OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了强化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 对于视窗介面支援。
       注意:在这一步的时候,可能会出现以下情况,shell提示:

  1. Reading package lists... Done
  2. Building dependency tree
  3. Reading state information... Done
  4. E: Unable to locate package libglut-dev

将上述$ sudo apt-get install libglut-dev命令改成$ sudo apt-get install freeglut3-dev即可。

测试

示例test.c源码:

  1. #include <GL/glut.h>
  2. void init(void)
  3. {
  4. glClearColor(0.0, 0.0, 0.0, 0.0);
  5. glMatrixMode(GL_PROJECTION);
  6. glOrtho(-5, 5, -5, 5, 5, 15);
  7. glMatrixMode(GL_MODELVIEW);
  8. gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
  9. return;
  10. }
  11. void display(void)
  12. {
  13. glClear(GL_COLOR_BUFFER_BIT);
  14. glColor3f(1.0, 0, 0);
  15. glutWireTeapot(3);
  16. glFlush();
  17. return;
  18. }
  19. int main(int argc, char *argv[])
  20. {
  21. glutInit(&argc, argv);
  22. glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
  23. glutInitWindowPosition(0, 0);
  24. glutInitWindowSize(300, 300);
  25. glutCreateWindow("OpenGL 3D View");
  26. init();
  27. glutDisplayFunc(display);
  28. glutMainLoop();
  29. return 0;
  30. }

编译程式时,执行以下指令:

  1. $ gcc -o test test.c -lGL -lGLU -lglut

执行:

  1. $ ./test

Ubuntu 12.10安装OpenGL的更多相关文章

  1. 解决在ubuntu 12.10安装vmware-tools实现文件共享问题

    解决在ubuntu 12.10安装vmware-tools出现的“The path "" is not a valid path to linux-headers-3.5.0-17 ...

  2. Ubuntu 12.10 安装 jdk-7u10-linux-x64.tar.gz(转载)

    在Ubuntu 12.10下安装 jdk-7u10-linux-x64.tar.gz 总的原则:将jdk-7u10-linux-x64.tar.gz压缩包解压至/usr/lib/jdk,设置jdk环境 ...

  3. Ubuntu 12.10 安装VirtualBox增强功能

    原文链接:http://fengbaoxp.iteye.com/blog/1871825 Ubuntu 12.10 Desktop         首先,通过VirtualBox菜单(设备->安 ...

  4. Ubuntu 12.10安装QQ2012

    [日期:2012-11-05] 在最新的Ubuntu 12.10下安装QQ2012,请根据自己的机器类型下载后按照下面的32位或64位安装说明安装. 下载网址:http://www.longene.o ...

  5. Ubuntu 12.10 安装vim出错

    在Ubuntu 12.10中安装vim时出现了如下提示: 正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装.如果您用的是 unstable ...

  6. ubuntu 12.10安装VIM

    使用命令:sudo apt-get install vim vim-gtk 可能安装时出错,可用下面更新系统,再执行上面的安装命令. 更新:sudo apt-get update

  7. Ubuntu 12.10 安装JDK7

    1.首先到oracle下载上下载jdk-7u25-linux-i586.tar.gz 2.将jdk-7u25-linux-i586.tar.gz复制到/usr/lib/jvm/目录以下,这里假设没有j ...

  8. Ubuntu 12.10安装vmware-tools

    1:[菜单]->[虚拟机]->[重新安装vmware tools]出现 图中下边说的很清楚,解压然后执行 2:把压缩包拷贝到 /home/下,然后执行 :tar -zxvf v[按住tab ...

  9. Ubuntu 13.04/12.10安装Oracle 11gR2图文教程(转)

    Ubuntu 13.04/12.10安装Oracle 11gR2图文教程 原文标题:How to Install Oracle 11G R2 Enterprise Edition Database U ...

随机推荐

  1. 使用EXISTS语句注意点

    1.使用EXISTS语句,其目标列一般用“*”,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义. 2.使用EXISTS语句一定要注意上下两个表之间要建立联系. 例如,查询所有选修了1号 ...

  2. javascript中的表结构

    列表是一种常见的数据结构,通常列表是一族有徐的数据,列表中的数据项称为元素.在javascript中列表中的数据可以是任意类型的,列表中可以保存多少元素没有事先限定,实际使用时元素的数量只收到程序内内 ...

  3. iOS中使用RSA对数据进行加密解密

    RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0. ...

  4. transition的局限

    transition的优点在于简单易用,但是它有几个很大的局限. (1)transition需要事件触发,所以没法在网页加载时自动发生. (2)transition是一次性的,不能重复发生,除非一再触 ...

  5. final-----finalize----finally---区别

    一.性质不同 (1)final为关键字: (2)finalize()为方法: (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标识常量的关键字,final标识的关 ...

  6. win安装mysql5.1

    https://dev.mysql.com/downloads/mysql/5.5.html 这里官网下载5.5的安装 我装了几次5.1的,不知道系统有问题还是咋滴,重启mysql服务启动不起来了.擦 ...

  7. 项目中使用RDLC报表

    原文地址:http://www.cnblogs.com/wuhuacong/p/4109833.html RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用 ...

  8. [原创]JavaScript继承详解

    原文链接:http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html 面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++. ...

  9. JS 之性能优化(2)

    继续上一篇的JS性能优化之后,下面接着讲关于前端性能优化的内容.如果有不对的地方欢迎纠正. 1.避免过多的重排与重绘操作. 尽量将DOM中的多个读操作放一起,中间不要插入写的操作,因为写操作会导致浏览 ...

  10. ViewConfiguration.getScaledTouchSlop () 用法

    getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件.如果小于这个距离就不触发移动控件,如viewpager就是用这个距离来判断用户是否翻页 ViewC ...