文档章节

ubuntu12.04下安装opengl

guoliang
 guoliang
发布于 2014/02/27 18:35
字数 750
阅读 36
收藏 0

前言
OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上。

OpenGL 让程式开发人员不需要考虑到各种显示卡底层运作是否相同的问题,硬体由 OpenGL 核心去沟通,因此只要显示卡支援 OpenGL,那么程式就不需要重新再移植,而程式开发人员也不需要重新学习一组函式库来移植程式。

接下来,我们就一步一步的在Ubuntu底下建立开发OpenGL应用程式的环境。

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


$ sudo apt-get install build-essential 
安装OpenGL Library
接下来要把我们会用到的 Library 装上去,首先安装 OpenGL Library


$sudo apt-get install libgl1-mesa-dev
安装OpenGL Utilities
OpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。接下来我们安装OpenGL Utilities

$sudo apt-get install libglu1-mesa-dev 
安装OpenGL Utility Toolkit
OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了强化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 对于视窗介面支援。


$sudo apt-get install libglut-dev 
注意在这一步的时候,可能会出现以下情况,shell提示:正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       E: 未发现软件包 libglut-dev如果出现上述情况,请输入将上述$sudo apt-get install libglut-dev命令改成$sudo apt-get install freeglut3-dev就行拉, 
设定编译参数与编译
在这之前,我们需要一个测试范例,example.c 如下:


#include <GL/glut.h>


   void init();


   void display();


int main(int argc, char* argv[])


{

   glutInit(&argc, argv);

        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);


        glutInitWindowPosition(0, 0);

        glutInitWindowSize(300, 300);


        glutCreateWindow("OpenGL 3D View");

         init(); glutDisplayFunc(display);


         glutMainLoop();


         return 0;


}


void init()

{


            glClearColor(0.0, 0.0, 0.0, 0.0);

            glMatrixMode(GL_PROJECTION);


            glOrtho(-5, 5, -5, 5, 5, 15);


            glMatrixMode(GL_MODELVIEW);


            gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);


}


void display()


{


                glClear(GL_COLOR_BUFFER_BIT);

                glColor3f(1.0, 0, 0);


                 glutWireTeapot(3);

                 glFlush();

有了测试范例、基础编译环境与各个 OpenGL 相关的函式库之后,我们所需要做的就是告诉编译器我们有安装 OpenGL 函式库,编译程式时要连结这些函式库。

$gcc example.c -c -lGL -lGLU -lglut 
因为我们安装了 OpenGL Utility Toolkit ,它是建立在 OpenGL Utilities 与 OpenGL Library 之上,因此我们可以简单连结 OpenGL Utility Toolkit 的函式库就可以达到我们的目地了。下面的编译参数跟上面的是同样效果:

$gcc example.c -c -lglut 
下面简单说明一下所使用的 gcc 参数

-l<Library> 告诉 gcc 去连结指定 Library -o<file> 指定执行档的输出名字 
执行
接下来我们就可以来看看我们的结果,如果看到茶壶图片,代表成功了!

$./example.out

本文转载自:http://www.linuxidc.com/Linux/2012-05/60771.htm

共有 人打赏支持
guoliang
粉丝 26
博文 131
码字总数 27457
作品 0
杭州
程序员
【转载】OpenGL C#绘图环境配置

OpenGL简介 OpenGL作为一种图形学编程接口已经非常流行, 虽然在大型游戏方面DirectX有一定的市场占有率, 但由于OpenGL的开放性,可移植性等优点,OpenGL已经成了一种图形学方面的标准。 由...

venorie
2013/06/17
0
0
OpenGL学习入门之VS2010环境配置 [转]

OpenGL开发环境简介    基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:WINDOWSSYSTEM32目录下(这里假定用户将W...

IMGTN
2012/07/24
0
0
图片和图形之构建一个OpenGL ES环境(10)

原文 概要 构建一个OpenGL ES环境 为了在Android应用程序中使用OpenGL ES绘制图形,您必须为它们创建一个视图容器。其中一种更直接的方法是实现a GLSurfaceView和a GLSurfaceView.Renderer。...

lichong951
05/26
0
0
VS2010配置OpenGL开发环境

最近开始研究OpenGL了,下面是网上看到的一篇入门VS2010上环境配置的文章 OpenGL(Open Graphics Library)是一个跨编程语言、跨平台的专业图形程序接口。 OpenGL是SGI公司开发的一套计算机图形...

TinkerS
2012/11/14
0
0
完全用Deepin Linux娱乐、工作、学习(2)-- 显卡驱动篇

在前面《完全用Deepin Linux娱乐、工作、学习(1)》一文中,我简单和各位分享了关于Deepin Linux的基础体验。对于Deepin Linux来说其中有它的好也有它的不足,我相信任何人、任何事、任何物...

levinbin
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部