编译安装 Mesa (OpenGL)
来源:互联网 发布:收音机mac版 编辑:程序博客网 时间:2024/05/16 06:42
最近因为工作需要,想看一下 OpenGL 的东西,就在笔记本上搭建了 OpenGL 的环境。
1. 下载 Mesa 的源码 MesaLib-8.0.4.tar.bz2
解压后, 运行 configure, 根据提示安装必要的包, 编译,安装
我安装到了 /usr/local/private 下面:
/usr/local/private$ tree ..├── include│ ├── EGL│ │ ├── eglext.h│ │ ├── egl.h│ │ ├── eglmesaext.h│ │ └── eglplatform.h│ ├── GL│ │ ├── glext.h│ │ ├── gl.h│ │ ├── gl_mangle.h│ │ ├── glu.h│ │ ├── glu_mangle.h│ │ ├── glut.h│ │ ├── glxext.h│ │ ├── glx.h│ │ ├── glx_mangle.h│ │ ├── internal│ │ │ └── dri_interface.h│ │ ├── osmesa.h│ │ ├── vms_x_fix.h│ │ ├── wglext.h│ │ └── wmesa.h│ └── KHR│ └── khrplatform.h└── lib ├── dri │ ├── i915_dri.so │ ├── i965_dri.so │ ├── nouveau_vieux_dri.so │ ├── r200_dri.so │ ├── r300_dri.so │ ├── r600_dri.so │ ├── radeon_dri.so │ ├── swrast_dri.so │ └── vmwgfx_dri.so ├── libEGL.so -> libEGL.so.1 ├── libEGL.so.1 -> libEGL.so.1.0 ├── libEGL.so.1.0 ├── libGL.so -> libGL.so.1 ├── libGL.so.1 -> libGL.so.1.2 ├── libGL.so.1.2 ├── libGLU.so -> libGLU.so.1 ├── libGLU.so.1 -> libGLU.so.1.3.08000 ├── libGLU.so.1.3.08000 ├── libglut.so -> libglut.so.3 ├── libglut.so.3 -> libglut.so.3.7.1 ├── libglut.so.3.7.1 └── pkgconfig ├── dri.pc ├── egl.pc ├── gl.pc ├── glu.pc └── glut.pc8 directories, 45 files
2.下载 GLUT 的源码 MesaGLUT-7.9.2.tar.bz2
因为编译 GLUT 需要使用编译 Mesa 的配置环境,所以,要在 Mesa-7.9.2下建几个链接:
:~/Code/mesa/Mesa-7.9.2$ ls -ltotal 8lrwxrwxrwx 1 charles charles 18 Aug 30 00:26 bin -> ../Mesa-8.0.2/bin/lrwxrwxrwx 1 charles charles 21 Aug 30 00:26 configs -> ../Mesa-8.0.2/configsdrwxrwxr-x 3 charles charles 4096 Aug 30 00:25 includelrwxrwxrwx 1 charles charles 17 Aug 30 00:56 lib -> ../Mesa-8.0.2/libdrwxrwxr-x 3 charles charles 4096 Aug 30 00:25 src然后即可以编译,但是在生成 lib文件的时候还是报错,说是 gcc 找不到,等等。
经过分析,原因是,有几个 glut的库的变量没有定义,在 src/glut/glx/Makefile 里面加入:
19 GLUT_LIB=glut 20 GLUT_LIB_NAME = lib$(GLUT_LIB).so 21 GLUT_LIB_GLOB = lib$(GLUT_LIB).*so*然后就没有问题了。
3. 编译 GLEW.
进入目录, 然后:
~/Code/mesa/glew-1.9.0$ make GLEW_DEST=/usr/local/private
sudo make install GLEW_DEST=/usr/local/private
3. 下载 mesa-demos-8.0.1.tar.bz2
编译 demo 需要 GLEW 库。
glew代码可从 http://glew.sourceforge.net/ 下载到。
我想 把 glew库也放到 /usr/local/private下面,因此,编译代码的时候,执行
~/Code/mesa/glew-1.9.0$ make GLEW_DEST=/usr/local/private这样,会把指定的路径写到 makefile 和配置文件中, make install 的时候,会把生成的库装到指定的路径。
安装的时候,也要指定安装目录:
:~/Code/mesa/glew-1.9.0$ sudo make GLEW_DEST=/usr/local/private install
4. 编译一个opengl 程序
比如,编译 opengl demo 里面的程序 fire.c, 可用如下的命令:
~/Code/mesa/mesa-demos-8.0.1/src/demos$ gcc fire.c ../util/readtex.c -o fire `pkg-config --cflags --libs gl glu glut` -I../util/ -lX11 -lXmu -lm -lXi其实,还需要先设置一下 pkg-config的路径和 动态库的搜索路径
export PKG_CONFIG_PATH=/usr/local/private/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/private/lib/
上面的 lXi 是动态库 /usr/lib/i386-linux-gnu/libXi.so.6,可用如下的方法查询它的信息,先查它属于哪个安装包:
apt-file search /usr/lib/i386-linux-gnu/libXi.so.6libxi6: /usr/lib/i386-linux-gnu/libXi.so.6libxi6: /usr/lib/i386-linux-gnu/libXi.so.6.1.0libxi6-dbg: /usr/lib/debug/usr/lib/i386-linux-gnu/libXi.so.6.1.0dpkg -S /usr/lib/i386-linux-gnu/libXi.so.6libxi6: /usr/lib/i386-linux-gnu/libXi.so.6然后查一下这个安装包的信息:
apt-cache show libxi6Package: libxi6Priority: optionalSection: libsInstalled-Size: 141Maintainer: Ubuntu X-SWAT <ubuntu-x@lists.ubuntu.com>Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>Architecture: i386Source: libxiVersion: 2:1.6.0-0ubuntu2Depends: libc6 (>= 2.4), libx11-6 (>= 2:1.4.99.1), libxext6Pre-Depends: multiarch-supportFilename: pool/main/libx/libxi/libxi6_1.6.0-0ubuntu2_i386.debDescription-en: X11 Input extension library libXi provides an X Window System client interface to the XINPUT extension to the X protocol. . The Input extension allows setup and configuration of multiple input devices, and will soon allow hotplugging of input devices; to be added and removed on the fly. .
- 编译安装 Mesa (OpenGL)
- mesa opengl 安装
- mesa(OpenGL)安装
- [OpenGL] CentOS7 安装 mesa
- [OpenGL] CentOS7 安装 mesa
- [OpenGL] CentOS7 安装 mesa
- [OpenGL] CentOS7 安装 mesa
- [OpenGL] CentOS7 安装 mesa
- mesa openGL 安转和编译
- 交叉编译Mesa,X11lib,Qt opengl
- 交叉编译Mesa,X11lib,Qt opengl 补充
- linux下安装openGL(mesa)
- mesa编译
- linux下OpenGL开发:(一)Mesa的安装和问题解决
- Mesa, OpenGL and VMware
- 编译安装Mesa,LLVM的详细步骤及错误汇总
- 【OpenGL】MIPS平台上Linux系统中安装OpenGL 2.0库(Mesa库)
- 旧版mesa编译
- ext无提示,很纠结
- PL/SQL连接不上ORACLE
- COGNOS连接不上ORACLE数据源
- iOS中获取程序相关的一些目录路径
- iptables中state模块的连接状态
- 编译安装 Mesa (OpenGL)
- 多个编辑框,自作数字键盘,确认当前是那个编辑框解决方法
- nginx python spawn-fcgi Flup webpy搭建python的web环境
- 面对算法问题怎么办??
- nginx多域名设置
- Websphere Application Server 7下Apache Tiles 2.2的异常处理
- 重置Portlet Action-scoped Request属性
- fedora 17 添加yum更新源
- 黑马程序员——java高新技术1学习笔记整理