关于 mesa
mesa是一个开源的OpenGL的实现。它被广泛用于包括X-Windows在内的各种渲染系统中。 具体见官网:http://www.mesa3d.org/intro.html
ftp://ftp.freedesktop.org/pub/mesa/
ftp://ftp.freedesktop.org/pub/mesa/
现在,我们将在Ubuntu 14.04上编译并安装最新版mesa。
安装 LLVM/Clang 3.3
LLVM/Clang是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),它是编译mesa的依赖之一。目前,LLVM/Clang的最新版为3.4,在Ubuntu 14.04上,我们可以直接使用 sudo apt-get install llvm来安装最新版LLVM/Clang。但是,由于LLVM 3.4的一些bug会对之后的工作造成一定的麻烦,这里,我们自行编译、安装较为稳定的LLVM 3.3。
具体的,首先,我们从http://www.llvm.org/releases/上下载LLVM 3.3 和 Clang 3.3的源代码。源代码下载完成后,进行解压缩,然后将Clang 3.3的源代码目录命名为clang,并移动到llvm源代码目录下的tools目录下。具体的目录关系应如下所示:
- <llvmsrc>
- tools
- clang
最新版的mesa的编译需要高于2.4.54的libdrm_radeon库,我们使用与上文介绍的相同的方法来编译和安装。
首先,从http://dri.freedesktop.org/libdrm/下载libdrm 2.4.54的源代码,解压缩后,运行如下命令。
mesa的编译还需要其他依赖包,如果这些包缺失,mesa的配置将会失败,我们可以从configure的错误信息中得出缺失的包的名字,然后自行安装,以下罗列了安装一些可能缺失的包的命令(Ubuntu下)。
- sudo apt-get install x11proto-gl-dev
- sudo apt-get install x11proto-dri2-dev
- sudo apt-get install x11proto-dri3-dev
- sudo apt-get install x11proto-present-dev
- sudo apt-get install libxdamage-dev
- sudo apt-get install libxext-dev
- sudo apt-get install libx11-xcb-dev
- sudo apt-get install libxcb-glx0-dev
- sudo apt-get install libxcb-dri2-0-dev
- sudo apt-get install libxcb-dri3-dev
- sudo apt-get install libxcb-present-dev
- sudo apt-get install libxshmfence-dev
- sudo apt-get install libudev-dev
- sudo apt-get install autoreconf
- sudo apt-get install libtool
- sudo apt-get install expat
- sudo apt-get install libexpat1-dev
获取mesa的最新源代码
我们使用git(git可以使用sudo apt-get install git来安装)来获取mesa的最新源代码。之后就可以进行配置,编译与安装。 需要注意的是,git master branch所获得的源代码中并不包含生成好的configure文件,作为替代,我们运行autogen.sh命令来生成和运行configure,因此configure的配置选项也应该加入到autogen.sh命令后。
- git clone git://anongit.freedesktop.org/git/mesa/mesa
- cd mesa
- sudo ./autogen.sh --enable-gbm --enable-glx-tls
- make
- sudo make install
至此mesa的编译与安装就成功了,在mesa目录下,我们可以使用git pull origin命令来获得最新版的mesa代码,并编译和安装。
关于Opengl在Ubuntu14.04下使用Qt中的使用请在以下网址查找: http://home.cnblogs.com/wz/
This blog copy from " http://blog.csdn.net/flexwang_/article/details/37721945 ";