linux下编写OpenGL程序的一些准备工作

需要用到的软件包有两个,glut 和tmake,分别可以从以下两个网址下载:

下载后的文件假设都放在/usr/src中

首先是安装glut库,以下是从找到的编译glut库的手册()。

Install GLUT 3.7 Distribution (optional)

If you installed the MesaDemos/MesaLib package, then you have

already installed GLUT 3.7 since it is included with MesaDemos.

However, you may be interested in installing the GLUT

manpages and you can skip right to the "Install GLUT manual pages", below ...

Installing GLUT is a bit tricky. I'm not too familiar with imake,

the program that it uses to manage the Makefiles, and didn't quite see

how to get GLUT to install to where I wanted it (/usr/lib,

but MesaDemos will do this without any trouble though). It can be done manually anyhow:

cd /usr/src

tar -xvzf glut-3.7.tar.gz

cd glut-3.7

Read the file: README.linux

cd linux

READ the file: README

cp Glut.cf ..

cd ..

Edit Glut.cf: remove any Mesa references.

Replace any -lMesaGL -lMesaGLU with -lGL -lGLU if needed.

In particular, replace:

OPENGL = $(TOP)/../lib/libMesaGL.so

GLU = $(TOP)/../lib/libMesaGLU.so

with:

OPENGL = -lGL

GLU = -lGLU

./mkmkfiles.imake

cd lib/glut

cp /usr/src/glut-3.7/linux/Makefile .

Edit the Makefile: remove any Mesa references.

Replace any -lMesaGL -lMesaGLU with -lGL -lGLU if needed.

In particular, replace:

OPENGL = $(TOP)/../lib/libMesaGL.so

GLU = $(TOP)/../lib/libMesaGLU.so

with:

OPENGL = -lGL

GLU = -lGLU

make  (这里可能会遇到错误:“unrecognized command line option "-m486" ”,只要把Makefile里的-m486全换成-mtune=i486即可)

ln -s libglut.so.3.7 libglut.so

ln -s libglut.so.3.7 libglut.so.3

cp -d libglut.* /usr/lib

cd ..

cd gle

# make a shared lib for libgle

make

gcc -shared -o libgle.so.3.7 *.o

ln -s libgle.so.3.7 libgle.so

ln -s libgle.so.3.7 libgle.so.3

cp -d libgle.* /usr/lib

cd ..

cd mui

# make a shared lib for libmui

make

gcc -shared -o libmui.so.3.7 *.o

ln -s libmui.so.3.7 libmui.so

ln -s libmui.so.3.7 libmui.so.3

cp -d libmui.* /usr/lib

# Install the GLUT manual pages (not included with MesaDemos)

cd /usr/src/glut-3.7

make SUBDIRS=man Makefile

cd man/glut

make install.man

ldconfig

cd ../../progs/demos/ideas

# edit the Makefile, change OPENGL = -lGL and GLU = -lGLU

make

./ideas

# test compiling some demos

# take a look at which libraries have to be linked (-lX11 ...) in

# the Makefiles. Qt's tmake program available at

# is a quick way to make a Makefile but you have to edit it

# and add the -l needed.

ideas如果运行成功的话,说明glut已经可以用了。

(悲剧的是我并没有运行成功,出现错误了:

../../../lib/glut/libglut.so: undefined reference to `glXQueryChannelRectSGIX'

../../../lib/glut/libglut.so: undefined reference to `glXBindChannelToWindowSGIX'

../../../lib/glut/libglut.so: undefined reference to `glXQueryChannelDeltasSGIX'

../../../lib/glut/libglut.so: undefined reference to `glXChannelRectSGIX'

../../../lib/glut/libglut.so: undefined reference to `glXChannelRectSyncSGIX'

collect2: ld returned 1 exit status

make: *** [ideas] 错误 1

希望谁能帮忙解答下)

上面的几步中,下载的glut包放在/usr/src目录下,如果放在其他目录下,将/usr/src改为相应的目录即可。

此外应该注意的是两个Makefile文件的修改

·   OPENGL = $(TOP)/../lib/libMesaGL.so

GLU = $(TOP)/../lib/libMesaGLU.so

OPENGL = -lGL

GLU = -lGLU

因为所指定的目录中没有libMesaGL.so和libMesaGLU.so。

之后是tmake的配置,后面我们可以用它来生成pro工程文件和makefile文件。

先将下载的tmake解压缩,tar -zxvf tmake-1.8.tar.gz

得到tmake-1.8目录,之后设置两个环境变量:PATH和TMAKEPATH

PATH=$PATH:/usr/src/tmake-1.8/bin

export PATH

TMAKEPATH=/usr/src/tmake-1.8/lib/linux-g++

export TMAKEPATH

新建一个测试目录test,将glut-3.7目录下的progs/redbook目录下的hello.c复制到test目录中

之后生成一个pro文件:progen -o hello.pro

然后生成makefile文件:tmake hello.pro -o Makefile

编辑生成的Makefile文件,在加载动态连接库的行里面加入 -lglut -lXi -lXmu

保存,make。

./hello 可以看到运行结果就可以了。

glut linux 安装包,linux 下glut.h使用相关推荐

  1. vsftpd linux安装包,Linux下vsftpd的安装配置

    一.安装 由于很多时候都是在没有网络的情况下安装,所以下载rpm包来安装,我这里环境如下: 系统:redhat enterprise 6.5 vsftpd安装包:vsftpd-3.0.2-21.el7 ...

  2. lrzsz linux安装包,linux 离线安装lrzsz

    安装gcc环境 yum install --downloadonly --downloaddir=/usr/local/gcc gcc yum install --downloadonly --dow ...

  3. mysql5.0 linux安装包,LINUX下MYSQL5.0的安装!

    自己动手,多看,你就会明白很多! 首先,到www.mysql.com下下载MYSQL5.0:mysql-standard-5.0.16-linux-i686.tar.gz版本比较适合我们这些才鸟! 然 ...

  4. pwgen linux安装包,Linux 使用pwgen命令创建随机密码

    创建随机密码,以前写过一篇<php密码生成类>的文章. PHP密码生成类的功能如下: 1.可设定密码长度 2.可设定要生成的密码个数,批量生成. 3.可以指定密码的规则,字母,数字,特殊字 ...

  5. redis linux 安装包下载,redis linux安装包

    redis linux安装包适用于Linux系统平台,如果您需要搭建NOSQL数据库,可以在本页下载该安装包.安装存在一些前提要求,例如C++编译环境.gcc编译器,下载解压包之后,需要您根据项目情况 ...

  6. lnmp一键安装包linux,linux centos7.3 lnmp一键安装包集成

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? linux centos7.3 lnmp一键安装包集成 一.下载并安装LNMP一键安装包 安装LNMP稳定版wget - ...

  7. Ubuntu 16.04版本的 网易云音乐 linux 安装包资源以及下载过程

    网易云官网没有了支持Ubuntu16.04 版本的Linux安装包 ,以下提供相关绝版资源的链接: https://pan.baidu.com/s/10H5ifLJonrBq2F1kA2kpqw    ...

  8. 【泛微ecology】E-Mobile 7 win+linux 安装包(版本20210409)

    E-Mobile 7 win+linux 安装包(版本20210409) 含 emp_patch_20210526 更新包 链接:https://pan.baidu.com/s/1gj_Cj8Zq6I ...

  9. linux安装包U盘刻录工具:rufus-3.13.exe

    linux安装包U盘刻录工具:rufus-3.13.exe

最新文章

  1. LeetCode 94. Binary Tree Inorder Traversal--二叉树中序遍历--递归,迭代--C++,Python解法
  2. java中ArrayList与LinkedList的区别
  3. 江南百景图自动刷水井,附带拼图教程
  4. npm安装vue 解决VUE无法打开图形界面工具,输入vue ui无反应 vue-cli版本2.9.6无法升级 npm uninstall vue-cli卸载时失败
  5. ISE中使用DDR3例程的生成步骤与仿真过程
  6. 【pyqt5】——入门级模板(ui文件+ui转py文件+逻辑py文件)(消息提示框)
  7. 几种人类设计的永动机,最后一个彻底服了!| 今日最佳
  8. 单点登陆的三种实现方式
  9. leetcode851. 喧闹和富有(dfs)
  10. SSL证书检查吊销状态
  11. 保证一致性吗_谈了千百遍的缓存数据一致性问题
  12. TheWorld不能访问Taobao的解决办法
  13. 乌龟吃鱼类 -python
  14. jupyter kernel error
  15. sap的pod确认_VLPOD确认交付凭证
  16. 测绘摄影测量与遥感乙级资质申请流程及具体要求
  17. php展厅控制系统,展厅中控系统
  18. Computer Science Theory for the Information Age-2: 高维空间中的正方体和Chernoff Bounds
  19. 为什么学校的计算机识别不出u盘,电脑读不出u盘是什么问题 为什么电脑不能识别u盘...
  20. 服务器响应码418,HTTP状态码是什么?与SEO相关的有哪些?

热门文章

  1. 大数据平台数据治理体系建设和管理方案
  2. parameter缩略语_parameter的缩写
  3. html中点击文字变色,html选中文字 背景/字 变色
  4. 如何查看一个网站上的图片等内容有没有放在CDN上
  5. GDPR合规|数据控制者与数据处理者区别大吗?分别承担什么法律责任?
  6. 11——go语言数字类型
  7. 图的基本操作(C语言)
  8. 在计算机找不到资源管理器,XP资源管理器里找不到文件夹选项的解决方法
  9. AttributeError: ‘Book‘ object has no attribute ‘sheet‘
  10. 基础练习16-分解质因数