Mesa3d是一套跨平台的opengl/es库, 它不提供编译好的二进制包,所以必须自己动手编译. Linux默认都带了这个软件, 因此Linux上直接用就可以了. 如果想在linux上的编译, 也比较简单, 本文不赘述.那么如何在Windows上编译这个库呢? Mesa3d官网给出了编译方法.
遗憾的是我在编译过程中出现了错误,编译失败.最后我总结出了正确的编译方法,具体过程如下:
我的系统是Windows7+VS2010
1) 下载MesaLib-9.0.zip, 解压到c:\NVPACK\MesaLib-9.0
ftp://ftp.freedesktop.org/pub/mesa/9.0/MesaLib-9.0.zip
2) 安装Python-2.7.2.msi, 位置: C:\NVPACK\python27\
增加系统环境变量:
Path=......; C:\NVPACK\python27;C:\NVPACK\python27\Scripts
3) 安装libxml2-python-2.7.7.win32-py2.7.exe,安默认提示操作即可
http://xmlsoft.org/sources/win32/python/libxml2-python-2.7.7.win32-py2.7.exe
4) 安装scons-2.2.0-setup.exe,安默认提示操作即可
http://www.scons.org/
Production(2.2.0)/Windows
http://prdownloads.sourceforge.net/scons/scons-2.2.0-setup.exe
5) 安装MinGW, 安装在C:\NVPACK\MinGW
http://sourceforge.net/projects/mingw/files/latest/download
选择全部checkbox, 然后进入更新安装过程...
6) 运行MinGW Shell, 敲入下面的命令安装flex和bison
$ mingw-get install msys-flex msys-bison
复制下面的文件
C:\NVPACK\MinGW\msys\1.0\bin\flex.exe
为:
C:\NVPACK\MinGW\msys\1.0\bin\lex.exe
检验:
运行MinGW Shell, 敲入命令:
$ lex
$ yacc
如果没问题,说明lex和yacc安装正确.
7) 编译Mesa9.0. 运行MinGW Shell,敲入命令:
$ cd /c/NVPACK/Mesa-9.0
$ /c/NVPACK/python27/Scripts/scons.py
接下来就是一通编译过程. 编译出来的是debug版本. 下面是编译成功结束的样子:
到下面的目录中看看吧, 天哪: opengl32.dll真的生存了呀:
C:\NVPACK\Mesa-9.0\build\windows-x86-debug\mesa\drivers\windows\gdi\opengl32.dll
C:\NVPACK\Mesa-9.0\build\windows-x86-debug\gallium\targets\libgl-gdi\opengl32.dll