【问题标题】:Building Mesa for windows 7. Mesa 9.1为 Windows 7 构建 Mesa。Mesa 9.1
【发布时间】:2013-07-26 03:48:11
【问题描述】:

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

这是我的输出,我很久没有编写 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]

【问题讨论】:

  • 如果你想要一个答案,你必须做得比这更好。仅仅说“我完成了一个常见问题,但它没有用”不足以回答任何问题。您甚至都懒得链接到有问题的常见问题解答,更不用说确切地告诉我们您做了什么。
  • 永远无法让 MinGW 构建可行的 Mesa 二进制文件。不过最近没试过。你想交叉编译成什么? Win64 从 Win32?
  • 不想交叉编译,只是想在这个平台上构建openGL。 toolchain=crossmingw 的原因是因为这就是指令所说的。我按照 mesa 网站的编译/安装页面上的说明进行操作。我遵循了每一步,每一步都是成功的,除了最后一步是要编译的 scons 命令,我不确定你希望我告诉你什么,页面上列出了这些步骤。我在常见问题解答中提到的是 mesa 网站上的常见问题解答页面。常见问题解答中没有太多相关的内容,我只是想指出我确实读过它。
  • @genpfault 你是用 Visual Studio 编译的吗?
  • @EddieV223:我做到了。见答案。

标签: python c opengl mesa


【解决方案1】:

常见的scons 选项:

build=release
machine=x86
platform=windows
libgl-gdi
  1. Linux (Debian Wheezy),toolchain=crossmingw:在链接阶段失败,因为它找不到 __vscprintf 等等。 有效 Debian Jessie 8.5 和 Mesa d2f42a945ec0fbcc51b59cfd329258bd62ebf0d2 来自:

    scons \
    toolchain=crossmingw \
    build=release \
    machine=x86 \
    platform=windows \
    libgl-gdi
    

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

  2. Windows,toolchain=mingw失败,显示“命令行太长”。尽管LongCmdLinesOnWin32 上的两个片段有多种排列。

  3. Windows、VS2012 Express、MSVC_VERSION=11.0:从src/glsl/ralloc.c::ralloc_size() 中删除stray C99-isms成功


编辑:更完整的程序:

  1. 为 Windows 桌面安装 Visual Studio Express 2012:

    http://www.microsoft.com/visualstudio/eng/downloads#d-express-windows-desktop
    
  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)
    
  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
    
  4. 为 Python 安装 libxml2

    http://www.lfd.uci.edu/~gohlke/pythonlibs/
    libxml2-python-2.9.1.win32-py2.7.‌exe
    
    Installer should find the python install automagically
    
  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
    
  6. 安装Scons:

    http://www.scons.org/
    http://prdownloads.sourceforge.net/scons/scons-2.3.0-setup.exe
    
    Installer should find the Python install automagically
    
  7. 在您的PATH 顶部附近添加这些:

    C:\Python27\
    C:\Python27\Scripts
    
  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)
    
  9. 启动 MSYS shell:

    C:\mingw\msys\1.0\msys.bat
    
    Change into mesa src directory:
    cd /c/Mesa-9.1.5/
    
  10. 构建台面:

    scons.py \
    build=release \
    machine=x86 \
    platform=windows \
    MSVC_VERSION=11.0 \
    libgl-gdi \
    

这应该在build\windows-x86\gallium\targets\libgl-gdi 中创建一个opengl32.dll

使用little bit more legwork 可以构建llvmpipe

【讨论】:

  • 应用 ralloc.c 修复和你的 10 个步骤(确切地说),我能够成功编译 Mesa-9.1.5。谢谢。 :D
  • 由于 64 位 Windows 7 在今天(2014 年)非常普遍,如果您想在 64 位 Windows 7 上构建 64 位 opengl32.dll,请指定 machine=x86_64。 PS:现在已经是 64 位时代了,令人惊讶的是我们仍然需要经常使用命令行。这就像在现代社会过着原始的生活。我不清楚这是否是一件好事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
相关资源
最近更新 更多