ubuntu 12.04安装OpenGL

2023-10-27

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


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

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

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

$./example.out
完毕。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu 12.04安装OpenGL 的相关文章

随机推荐

  • 2019秋招:460道Java后端面试高频题答案版【模块五:计算机网络】

    点击上方蓝字关注我吧 写在前面 计算机网络 计算机操作系统这两个 兄弟 是所有开发岗位都需要 结拜 的 不管你是 Java C 还是测试 对于后端开发的童鞋来说 计算机网络
  • 12-数据结构-数组、矩阵、广义表

    数组 矩阵 广义表 目录 数组 矩阵 广义表 一 数组 二 矩阵 三 广义表 一 数组 这一章节理解基本概念即可 数组要看清其实下标是多少 并且二维数组 存取数据 要先看清楚是按照行存还是按列存 按行则是正常一行一行的去读写 按列则是 从左
  • LA@相似对角化判定定理和计算方法

    文章目录 方阵相似对角化 引言 相似对角化变换矩阵的性质 构造对角化变换矩阵 方阵可对角化判定定理 推论 无重根特征值的方阵可以对角化 含重根特征值的方阵的对角化判定定理 总结 综合 对角化步骤归纳 例 特征值计算 构造相似变换阵 下结论
  • 51单片机串口通信(UART)

    项目描述 1 串口工作方式为1 8位UART 波特率可变 无校验位 2 通信数据格式为 1位起始位 8位数据位 1位停止位 3 上电后MCU给上位机发送问候语 之后等待上位机的信息 MCU和上位机的通信为收发交替进行 MCU接收到的信息会实
  • 1.k-近邻算法(KNN)

    概念 根据你的 邻居 判断你的类别 流程 KNN api 初步使用 机器学习流程 Scikit learn工具 安装 pip3 install scikit learn 0 19 1 注 需要Numpy Scipy等库的支持 Python
  • 一文彻底搞懂PCA

    一文彻底搞懂PCA 简介 约定几个符号 PCA的应用场景 PCA的数学原理 数据的向量表示 向量的基 基变换的矩阵表示 协方差矩阵及优化目标 方差 协方差 协方差矩阵 协方差矩阵对角化 算法及实例 实例 进一步讨论 简介 PCA Princ
  • redis的java客户端

    一 jedis jedis就是通过java来使用redis的客户端工具 jedis连接 1 引依赖坐标
  • win7系统ftp服务器构建,win7系统构建ftp服务器

    win7系统构建ftp服务器 内容精选 换一换 本文操作介绍使用Linux操作系统的HECS 云耀云服务器 安装宝塔面板 宝塔面板是一款使用方便 功能强大且终身免费的服务器管理软件 支持Linux与Windows系统 一键配置LAMP LN
  • 【DButils学习之】利用ResultSetHandler各实现类来处理查询结果

    ResultSetHandler的各个实现类 ArrayHandler 把结果集中的第一行数据转成对象数组 ArrayListHandler 把结果集中的每一行数据都转成一个对象数组 再存放到List中 BeanHandler 将结果集中的
  • 小识.htaccess文件

    htaccess文件 或者 分布式配置文件 提供了针对目录改变配置的方法 即 在一个特定的文档目录中放置一个包含一个或多个指令的文件 以作用于此目录及其所有子目录 作为用户 所能使用的命令受到限制 管理员可以通过Apache的AllowOv
  • 项目测试(学生宿舍管理系统)

    学生宿舍管理系统 单元测试 功能测试 项目存在的BUG 单元测试 1 测试框架 junit框架 2 测试方法 白盒测试 主要对代码的路径覆盖 错误处理等进行测试 3 测试步骤 1 添加依赖
  • VSCode调试PHP

    1 安装PHP Debug 2 配置php ini xdebug zend extension D DEVTOOLS PHP php72 ext php xdebug 2 7 1 7 2 vc15 x86 64 dll zend exten
  • 计算机网络(十)CSMA详解

    随机访问截止访问控制 所有用户可随机发送信息 发送信息时占全部带宽 分类 CSMA 先听再说 CSMA CD 先听再说 边听边说 CSMA CA CSMA协议 载波监听多路访问协议 CS 载波监听 每个站点在发送数据之前要检测一下总线上是否
  • Python中列表元素的操作(追加、插入、删除、赋值、排序、拷贝)

    一 列表元素的追加和插入 append 追加一个元素到列表 extend 列表拉伸 追加多个元素到列表 insert 在指定索引处插入元素 二 列表元素的删除 pop a 弹出列表中索引为a的元素 默认为列表最后一个元素 pop 弹出的值可
  • FreeRTOS创建动态任务(SRAM动态内存)

    动态内存的管理方法 在SRAM中定义一个大的数组 也就是堆内存 供FreeRTOS的动态内存分配函数使用 在第一次使用的时候 系统会将定义的内存进行初始化 这些代码在FreeRTOS提供的内存管理方案中实现 系统所有堆得大小 define
  • ndk-build配置、Android Studio jni的配置以及jni常见问题的解决

    最近项目用到了jni比较频繁 android studio 配置jni也是必须的 但不知道是不是运气问题 我在自己电脑使用jni一点问题都没有 可以说是无障碍 但是 一使用公司电脑配置就出现了一大片编译报错 编译不通过的问题 抱着不怕搞事情
  • 268道Go语言面试真题及详解+100例代码实例+DDD实践

    Go最近动静挺大的 刚刚发布的1 18包含以下几大特性 1 泛型 2 模糊测试 Fuzzing 3 工作空间 Workspaces 4 20 性能提升 Apple M1 ARM64 和 PowerPC64 用户开心了 由于 Go 1 17
  • SSH(ssh: connect to host localhost port 22: Connection refused)问题的解决

    centos默认并没有安装ssh服务 如果通过ssh链接centos 需要自己手动安装openssh server 判断是否安装ssh服务 可以通过如下命令进行 输入 ssh localhost 如果 输出 ssh connect to h
  • 如何使用计算机查询本机网卡信息,本机mac地址查询的三种方法

    现在电脑非常流行 大部分的学生以及白领或者说每一个家庭几乎都有一台电脑 不过大家对于电脑的认识却没有这么高的普及度 很多人对于它的了解仅仅停留在使用电脑看视频用软件的层面 对于电脑自身的认识不是很多 例如本机mac地址查询这个问题就难倒了很
  • ubuntu 12.04安装OpenGL

    安装 建立基本编译环境 首先不可或缺的 就是编译器与基本的函式库 如果系统没有安装的话 请依照下面的方式安装 sudo apt get install build essential 安装OpenGL Library 接下来要把我们会用到的