构建Mesa for windows 7. Mesa 9.1

Edd*_*223 5 c python opengl mesa

我在Mesa网站的编译/安装页面上完成了所有步骤,并阅读了常见问题解答.您发送给scons进行编译的最终命令会在python脚本中引发错误.这是我的输出.我究竟做错了什么?如果有人使用最新的台面和mingw或VS2012编译了dsa用于台面,那么请分享!

这是我的输出,我没有在很长一段时间内编写python,但看起来地图/字典不包含键/值对.

C:\Downloads\MesaLib-9.1.5\Mesa-9.1.5>scons platform=windows toolchain=crossming
w machine=x86_64 mesagdi libgl-gdi

scons: Reading SConscript files ...
KeyError: 'CCVERSION':
  File "C:\Downloads\MesaLib-9.1.5\Mesa-9.1.5\SConstruct", line 40:
    ENV = os.environ,
  File "C:\Python27\scons-2.3.0\SCons\Environment.py", line 1002:
    apply_tools(self, tools, toolpath)
  File "C:\Python27\scons-2.3.0\SCons\Environment.py", line 106:
    env.Tool(tool)
  File "C:\Python27\scons-2.3.0\SCons\Environment.py", line 1786:
    tool(self)
  File "C:\Python27\scons-2.3.0\SCons\Tool\__init__.py", line 183:
    self.generate(env, *args, **kw)
  File "C:\Downloads\MesaLib-9.1.5\Mesa-9.1.5\scons\gallium.py", line 313:
    ccversion = env['CCVERSION']
  File "C:\Python27\scons-2.3.0\SCons\Environment.py", line 412:
    return self._dict[key]
Run Code Online (Sandbox Code Playgroud)

gen*_*ult 17

常见scons选项:

build=release
machine=x86
platform=windows
libgl-gdi
Run Code Online (Sandbox Code Playgroud)
  1. Linux(Debian Wheezy)toolchain=crossmingw:在链接阶段失败,因为__vscprintf除其他外,它找不到. 作为Debian Jessie 8.5和Mesa的作品d2f42a945ec0fbcc51b59cfd329258bd62ebf0d2:

    scons \
    toolchain=crossmingw \
    build=release \
    machine=x86 \
    platform=windows \
    libgl-gdi
    
    Run Code Online (Sandbox Code Playgroud)

    DLL已安装到 build/windows-x86/gallium/targets/libgl-gdi/opengl32.dll

  2. Windows的toolchain=mingw:失败与"命令行太长." 尽管两个snippits的多个排列LongCmdLinesOnWin32.

  3. Windows中,VS2012快递,MSVC_VERSION=11.0:则成功移除之后杂散C99-主义src/glsl/ralloc.c::ralloc_size().


编辑:更完整的程序:

  1. 安装适用于Windows桌面的Visual Studio Express 2012:

    http://www.microsoft.com/visualstudio/eng/downloads#d-express-windows-desktop
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装MinGW:

    http://www.mingw.org/
    http://sourceforge.net/projects/mingw/files/
    http://sourceforge.net/projects/mingw/files/latest/download?source=files
    mingw-get-inst-20120426.exe
    
    Run installer:
    Download latest repo catalogs
    Install to C:\MinGW (default)
    Check:
    * C compiler
    * C++ compiler
    * MSYS basic system
    * MinGW developer toolkit (should install msys-flex and msys-bison)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装Python 2.7:

    http://www.python.org/download/
    http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi
    
    You have to use 32-bit Python because the Scons people only distribute 32-bit installers.
    
    Install for all users (default)
    Install to C:\Python27 (default)
    Use default install options/customizations
    
    Run Code Online (Sandbox Code Playgroud)
  4. 安装libxml2Python:

    http://www.lfd.uci.edu/~gohlke/pythonlibs/
    libxml2-python-2.9.1.win32-py2.7.?exe
    
    Installer should find the python install automagically
    
    Run Code Online (Sandbox Code Playgroud)
  5. 安装pywin32:

    http://pywin32.sourceforge.net/
    http://sourceforge.net/projects/pywin32/files/pywin32/
    http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/
    http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/pywin32-218.win32-py2.7.exe
    
    Installer should find the Python install automagically
    
    Run Code Online (Sandbox Code Playgroud)
  6. 安装Scons:

    http://www.scons.org/
    http://prdownloads.sourceforge.net/scons/scons-2.3.0-setup.exe
    
    Installer should find the Python install automagically
    
    Run Code Online (Sandbox Code Playgroud)
  7. 将这些添加到您的顶部附近PATH:

    C:\Python27\
    C:\Python27\Scripts
    
    Run Code Online (Sandbox Code Playgroud)
  8. 下载梅萨:

    ftp://ftp.freedesktop.org/pub/mesa/
    ftp://ftp.freedesktop.org/pub/mesa/9.1.5/MesaLib-9.1.5.zip
    
    Extract somewhere (C:\Mesa-9.1.5)
    
    Run Code Online (Sandbox Code Playgroud)
  9. 启动MSYS shell:

    C:\mingw\msys\1.0\msys.bat
    
    Change into mesa src directory:
    cd /c/Mesa-9.1.5/
    
    Run Code Online (Sandbox Code Playgroud)
  10. 建立梅萨:

    scons.py \
    build=release \
    machine=x86 \
    platform=windows \
    MSVC_VERSION=11.0 \
    libgl-gdi \
    
    Run Code Online (Sandbox Code Playgroud)

这应该创建一个opengl32.dllbuild\windows-x86\gallium\targets\libgl-gdi.

通过更多的腿部工作,可以构建llvmpipe.

  • 应用`ralloc.c`修复和你的10个步骤(完全),我能够成功编译`Mesa-9.1.5`.谢谢.:d (2认同)
  • 由于64位Windows 7在今天非常普遍(2014年),如果要在64位Windows 7上构建64位opengl32.dll,请指定machine = x86_64.PS:现在是64位年龄,令人惊讶的是我们仍然需要经常使用命令行.这就像在现代社会中引领原始生活.我不清楚这是不是一件好事. (2认同)