2013-07-26 5 views
5

Я прошел все шаги на странице компиляции/установки на сайте Mesa и прочитал FAQ. Последняя команда, которую вы отправляете в scons для компиляции, выдает ошибки в сценариях python. Это мой вывод. Что я делаю не так? Кроме того, если кто-то скомпилировал dll для mesa, используя современные mesa и mingw, или VS2012, тогда, пожалуйста, поделитесь!Строительство Mesa для окон 7. Mesa 9.1

Вот мой вывод, я не запрограммировал 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] 
+0

Вам нужно будет сделать лучше, если вы хотите получить ответ. Просто сказал: «Я прошел FAQ и не работал», недостаточно, чтобы ответить на что-либо. Вы даже не потрудились ссылаться на часто задаваемые вопросы, не говоря уже о том, что именно вы сделали. –

+0

Никогда не мог получить MinGW для создания работоспособных двоичных файлов Mesa. Не пробовал недавно. К чему вы пытаетесь перекрестно скомпилировать? Win64 от Win32? – genpfault

+0

Не пытайтесь перекрестно компилировать, просто хотите создать openGL на этой платформе. Причина toolchain = crossmingw - это то, что сказано в инструкциях. Я выполнил инструкции на странице компиляции/установки сайта mesa. Я последовал за каждым шагом, и каждый шаг был успешным, за исключением последнего шага, который является командой scons для компиляции, я не уверен, что вы ожидаете от меня рассказать об этом, шаги перечислены на странице. Что я упоминал в FAQ, это страница часто задаваемых вопросов на сайте mesa. В FAQ часто было много вопросов, я просто хотел указать, что я действительно прочитал его. – EddieV223

ответ

17

Общие scons варианты:

build=release 
machine=x86 
platform=windows 
libgl-gdi 
  1. Linux (Debian хриплый), 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. Окна, VS2012 Express, MSVC_VERSION=11.0: преуспевает после удаления stray C99-isms из src/glsl/ralloc.c::ralloc_size().


EDIT: Более полная процедура:

  1. Установка Visual Studio Express 2012 для рабочего стола Windows:

    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. Установка libxml2 для Python:

    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. Скачать Mesa:

    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 оболочки:

    C:\mingw\msys\1.0\msys.bat 
    
    Change into mesa src directory: 
    cd /c/Mesa-9.1.5/ 
    
  10. Строить Mesa:

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

Это должно создать opengl32.dll в build\windows-x86\gallium\targets\libgl-gdi.

С little bit more legwork можно построить llvmpipe.

+2

Применяя исправление 'ralloc.c' и ваши 10 шагов (точно), я смог успешно скомпилировать' Mesa-9.1.5'. Благодарю. : D –

+2

Поскольку 64-разрядная версия Windows 7 очень распространена сегодня (в 2014 году), если вы хотите построить 64-разрядную opengl32.dll на 64-битной Windows 7, укажите machine = x86_64. PS: сейчас это 64-битный возраст, удивительно, что нам по-прежнему приходится часто работать с командной строкой. Это что-то вроде ведения примитивной жизни в современном обществе. Я не знаю, хорошо ли это. – user2384994