基于Linux下 Qt 对于Opengl中glu开头函数不能使用的研究

本文详细介绍了如何在Linux系统上安装OpenGL的GLUT库,包括不同类型的包安装方法、解决常见错误及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

花费了几乎一个下午和晚上对opengl的Glut进行研究,在windows下的qt内置有glut.h,但在mint上的linux系统缺少这方面,在研究了apt-get install后发现并不是那么容易就能完成安装,因此尝试过程中留意到一份文件是直接安装,但follow一部分步骤后,发现这样是RED HaT的安装方法,rpm,pm等在ubuntu中必须通过Alien软件将rpm转换为deb包,而又研究了一下alien的使用方法后,发现作者提供的并不能支持,原因在于该安装包是i386处理器,与我的系统并不符合,因此再三衡量后,通过google翻墙在opengl官网上找到glut的3.7下载,下载过后发现对于该类型的文件安装还是十分陌生,再三找了资料后,找到一系列安装方式,如:
1. 安装编译工具:$ sudo apt-get install build-essential
2. 推荐将源码包放在/usr/local/src目录下
3. 进入/usr/local/src目录,解压源码包
4. 进入源码目录,用ls命令产看目录中的文件
   1). 一般情况下,里面有个configure文件,则运行命令:
            配置:$ sudo ./configure
                      (或者推荐1:$ sudo ./configure —prefix=/usr/local/filename/)
                      (或者推荐2:$ sudo ./configure —prefix=/opt/filename/)
            编译:$ make
            安装:$ sudo make install
   2). 如果只有Makefile文件,则运行命令:
            编译:$ make
            安装:$ sudo make install
   3). 如果只是Imake文件,则运行命令:
            配置:$ xmkmf
            编译:$ make
            安装:$ sudo make install
5. 卸载软件:$ dpkg -r filename.deb
6. 清除编译过程中产生的临时文件:$ make clean
7. 清除配置过程中产生的文件:$ make distclean (谨用)
8. 卸载软件时,进入源码文件目录:$ make uninstall


二。deb包
方法一:直接双击安装
方法二:命令安装
1. 安装dpkg:$ sudo apt-get install dpkg
2. 安装软件:$ dpkg -i filename.deb
3. 卸载软件:$ dpkg -r filename.deb


三。rpm包
先安装rpm和alien:$ sudo apt-get install rpm alien
方法一:安装:./alien -i filename.rpm
方法二:1. 使用alien将rpm包转换为deb包:$ alien -d filename.rpm
        2. 安装:$ sudo dpkg -i filename.deb
        3. 卸载:$ sudo dpkg -r filename.deb


四。bin包
1. 更改执行权限:$ sudo chmod a+x filename.bin
2. 安装:$ ./filename.bin


五。pl包
1. 安装perl:$ sudo apt-get install perl
2. 安装软件:$ perl filename.pl


六。sh包或bash包
1. 更改权限:$ sudo chmod a+x filename.sh filename.bash
2. 安装软件:$ ./filename.sh (或 $ ./filename.bash)


七。py包
1. 安装python:$ sudo apt-get install python
2. 安装软件:$ python filename.py
八。二进制包
1. 不用安装,将软件放于某目录下。
2. 直接运行软件:$ ./filename


现在对于该类型的库文件安装有一点小小心得,首先进入查找readme,认真阅读,对于下载前也要清除的区分到底是windows系统还是类unix系统,在Linux系统安装时,先进入该Linux文件夹认真阅读安装步骤,无非是make等,遇到编译错误,仔细针对错误认真分析,在baidu上查找不了该类型错误后,必须翻墙去google中查找,只要是安装比较久远的库文件等, 大多数问题都能在这里找到解决,因为遇到这样的问题并不只是你一个人,站在各种大神的肩膀上,最终一定可以找到解决方法。


最后在google上找到完整的安装步骤:

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
        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 www.troll.no
        # is a quick way to make a Makefile but you have to edit it
        # and add the -l needed.

经过老外的指点后信心满满!!!自己读glut-3.7中的Linux包还看得糊里糊涂,最后make后居然没有库文件,但是经过老外的步骤后,终于生成了库,并进行了一一链接,但最后一试还是目有能成功!!!还是undefined reference这样的错误。。。。。


第二天跑去问大师,大师指出了问题的所在,先看看该函数接口的头文件,发现该函数对应的是glu.h,而通过find命令找到其位置不在/usr/lib 中,因此在pro文件内,
必须给出其文件位置,即
LIBS      += -L /usr/lib/x86_64-linux-gnu/ \
          -lglut \
           lGLU
由此以来glu开头的函数终于能够使用。。。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值