Panda3D/Manual/ppremake no windows

Essa página descreve problemas potenciais de compilação que podem surgir quando compilando Panda3D com o sistema de compilação PPremake, ma plataforma Windows, e possíveis soluções.

ppremake não roda (access violation 0xc0000005)

A versão de Abril/Maio 2005 de Cygwin pode ter tido um problema com getopt.

Simplesmente abra config.h no diretorio ppremake, substitua "#define HAVE_GETOPT 1" com "#undef HAVE_GETOPT", então rode novamente "make" e "make install".


Opção de link inválida /DEBUG, quando rodando make

Esse erro (ou algo similar) é causado pelo make rodando o link Cygwin´s do que seu msvc link.exe. Simplesmente renomeie /usr/bin/link para /usr/bin/_link, e rode novamente make.

Compilar usando Microsoft Visual C++ Toolkit 2003

Basicamente siga as intruções oficiais de compilação, usando Cygwin como plataforma de configuração e Microsoft Visual C++ Toolkit 2003 como compilador (voce têm que fazer bastante, essa configuração é bem próxima da configuração primária que eles suportam).

Pré-requisitos:

  • Microsoft Visual C++ Toolkit 2003
  • msvcrt.lib and msvcprt.lib (veja Notas sobre Microsoft Visual CPP Toolkit 2003)
  • DirectX (Mesmo que você não o esteja usando, você precisa dos headers)
  • Cygwin
  • Fonte Panda

O zip fonte Panda contêm Python.

  • Primeiro, você precisará setar suas váriaveis para o MSVC, dentro do Cygwin. O que você pode fazer é personalizar o seguinte arquivo para você mesmo, e salvá-lo em /usr/local/panda/bin/setvars:

PATH=$PATH:"/cygdrive/f/Program Files/Microsoft Visual C++ Toolkit 2003/bin" PATH=$PATH:/usr/local/panda/bin PATH=$PATH:/usr/local/panda/lib PATH=$PATH:/cygdrive/f/dev/panda3d-1.0.2-cyg/thirdparty/win-python

export CL=" /I\"F:\Program Files\Microsoft Visual C++ Toolkit 2003\include\" " export CL="$CL /I\"F:\Program Files\Microsoft Visual C++ Toolkit 2003\include\" " export CL="$CL /I\"F:\program Files\Microsoft SDK\include\" " export CL="$CL /I\"F:\Program Files\Microsoft DirectX 9.0 SDK\include\" " export CL="$CL /I\"F:\dev\panda3d-1.0.2-cyg\thirdparty\win-python\include\" "

export LINK=" /LIBPATH:\"F:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\" " export LINK="$LINK /LIBPATH:\"F:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\" " export LINK="$LINK /LIBPATH:\"F:\Program Files\Microsoft SDK\lib\" " export LINK="$LINK /LIBPATH:\"F:\Program Files\Microsoft DirectX 9.0 SDK\lib\" " export LINK="$LINK /LIBPATH:\"F:\dev\panda3d-1.0.2-cyg\thirdparty\win-python\libs\" "

export PANDA_ROOT='F:\Cygwin'

export PYTHONPATH="f:\dev\panda3d-1.0.2-cyg\thirdparty\win-python;f:\cygwin\usr\local\panda\lib"

  • então rode esse arquivo dentro do Cygwin
 . /usr/local/panda/bin/setvars

(note que existe um . no começo, e um espaço entre o . e o resto do comando)

  • você também precisará renomear /usr/bin/link to /usr/bin/_link , para fazer o cygwin achar o link msvc , e não o link gcc
  • Abra cgywin/usr/local/panda/Config.pp (crie o arquivo, se você não o tiver feito), e adicione as seguintes linhas:
 #define HAVE_DX
  • A linha HAVE_DX significa que você não usa DirectX (sic), o que é muito bom, a não ser que voce tenha um SDK antigo do DirectX 8 SDK por aí (A atual versão da microsoft.com é 9)
  • Note que linkar dinamicamente é o padrão; e essa configuração compila melhor.
  • A Visual C++ Toolkit não contêm lib, apenas link,que pode fazer as mesmas coisas, então abra-o, localize o diretorio fonte do panda, dtool/pptempl/compilerSettings.pp, e substitua:
 #define LIBBER lib

com

 #define LIBBER link /lib
  • Agora, você está pronto para rodar ppremake, make e afins no dtool, enão panda, como instruído.

(Essas notas foram pegas de: [1]).