2013-07-26 12 views
5

Ho seguito tutti i passaggi sulla pagina di compilazione/installazione sul sito di Mesa e ho letto le domande frequenti. Il comando finale che si invia a scons per la compilazione genera errori all'interno degli script Python. Questa è la mia uscita. Che cosa sto facendo di sbagliato? Inoltre, se qualcuno ha compilato dll per mesa usando mesa e mingw aggiornati, o VS2012, per favore condividi!Edificio Mesa per Windows 7. Mesa 9.1

Ecco il mio output, non ho programmato python da molto tempo ma sembra che una mappa/dizionario non contenga la coppia chiave/valore.

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

Dovrai fare di meglio se vuoi una risposta. Il solo dire "Ho passato una FAQ e non ha funzionato" non è abbastanza per rispondere a qualsiasi cosa. Non ti sei nemmeno preoccupato di collegare alle domande frequenti in questione, figuriamoci a dirci esattamente cosa hai fatto. –

+0

Non è mai stato possibile ottenere MinGW per creare binari Mesa funzionanti. Non ho provato di recente però. A cosa stai cercando di eseguire una compilazione incrociata? Win64 da Win32? – genpfault

+0

Se non si tenta di eseguire la compilazione incrociata, si desidera creare openGL su questa piattaforma. La ragione per cui toolchain = crossmingw è perché questo è ciò che le istruzioni dicono di fare. Ho seguito le istruzioni sulla pagina di compilazione/installazione del sito di mesa. Ho seguito ogni fase e ogni passaggio è stato un successo, tranne l'ultimo passaggio che è un comando scons per la compilazione, non sono sicuro di cosa ti aspetti che te lo dica, i passaggi sono elencati nella pagina. Quello che ho trovato nelle FAQ era la pagina delle FAQ sul sito di mesa. Non c'era molto nelle FAQ che fosse rilevante, volevo solo far notare che l'ho letto davvero. – EddieV223

risposta

17

comuni scons opzioni:

build=release 
machine=x86 
platform=windows 
libgl-gdi 
  1. Linux (Debian Wheezy), toolchain=crossmingw: non riesce durante la fase di collegamento, perché non riesce a trovare __vscprintf, tra le altre cose.Opere come di Debian 8.5 Jessie & Mesa d2f42a945ec0fbcc51b59cfd329258bd62ebf0d2 via:

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

    DLL viene installata a build/windows-x86/gallium/targets/libgl-gdi/opengl32.dll

  2. di Windows, toolchain=mingw: Fails con "La riga di comando è troppo lungo." nonostante le molteplici permutazioni di entrambi gli snippits su LongCmdLinesOnWin32.

  3. di Windows, VS2012 Express, MSVC_VERSION=11.0: Succeeds dopo la rimozione stray C99-isms da src/glsl/ralloc.c::ralloc_size().


EDIT: procedura più completa:

  1. Installare Visual Studio Express 2012 per Windows Desktop:

    http://www.microsoft.com/visualstudio/eng/downloads#d-express-windows-desktop 
    
  2. Installare 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. Installa 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. Installare libxml2 per 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. Installare 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. Installare Scons:

    http://www.scons.org/ 
    http://prdownloads.sourceforge.net/scons/scons-2.3.0-setup.exe 
    
    Installer should find the Python install automagically 
    
  7. aggiungere questi vicino alla parte superiore del vostro PATH:

    C:\Python27\ 
    C:\Python27\Scripts 
    
  8. Scarica 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. Inizio MSYS shell:

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

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

Questo dovrebbe creare un opengl32.dll in build\windows-x86\gallium\targets\libgl-gdi.

Con un little bit more legwork è possibile creare llvmpipe.

+2

Applicando la correzione 'ralloc.c' ei tuoi 10 passi (esattamente), sono riuscito a compilare correttamente' Mesa-9.1.5'. Grazie. : D –

+2

Poiché Windows 7 a 64 bit è molto comune oggi (nell'anno 2014), se si desidera creare un opengl32.dll a 64 bit su Windows 7 a 64 bit, specificare machine = x86_64. PS: è ora a 64 bit, è sorprendente che dobbiamo ancora lavorare con la riga di comando spesso. È come condurre una vita primitiva nella società moderna. Non sono chiaro se è una buona cosa. – user2384994