Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2617976
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: Windows平台

2013-07-27 12:28:35

    ubuntu安装opengl来自网友的文章,可以使用,如果报找不到源,记得替换软件源,个人比较喜欢163的;之后参照作者的例子,编译了一个opengl的测试程序,发现未定义uint64_t的一些错误,可能某些系统不太一样,或者缺少了某些库,管他了,解决就是了【最后一段解决这个问题的】:
    

ubuntu 12.04安装OpenGL

[日期:2012-05-21] 来源:Linux社区  作者:33_jason [字体:  ]

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

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

接下来,我们就一步一步的在底下建立开发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


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

$./example.out
完毕。



hl@hl-pc:~/tmp$ gcc example.c -c -lglut

In file included from /usr/include/GL/gl.h:2085:0,

                 from /usr/include/GL/freeglut_std.h:120,

                 from /usr/include/GL/glut.h:17,

                 from example.c:1:

/usr/include/GL/glext.h:5391:1: 错误: 未知的类型名‘int64_t’

/usr/include/GL/glext.h:5392:1: 错误: 未知的类型名‘uint64_t’

/usr/include/GL/glext.h:5396:1: 错误: 未知的类型名‘int64_t’

/usr/include/GL/glext.h:5397:1: 错误: 未知的类型名‘uint64_t’

 5390 #ifndef GL_EXT_timer_query
 5391 #include  ///< 增加
 5392 typedef int64_t GLint64EXT;
 5393 typedef uint64_t GLuint64EXT;
 5394 #endif

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