dtool_dtool.obj Fatal Error when compiling Panda3D in W7x64

Hi all,

My system:
Windows 7 x64
MS DirectX SDK June 2010
MS Visual C++ 2008 Express
MS Windows SDK v7.1
Python 2.7.2 x64

I’m trying to compile Panda3D from both 1.7.2 SDK and CVS but I’m having this error:

C:\source\panda3d-1.7.2>makepanda\makepanda.bat --everything --installer
Windows 7 SDK detected. Enabling special features (multi-touch).
WARNING: Could not locate thirdparty package awesomium, excluding from build
Generating library cache...
Generating dependencies...
[  0%] Building C++ object built/tmp/dtoolbase_composite1.obj
cl : Command line warning D9002 : ignoring unknown option '/favor:blend'
dtoolbase_composite1.cxx
c:\source\panda3d-1.7.2\dtool\src\dtoolbase\dlmalloc_src.cxx(1176) : warning C40
05: 'assert' : macro redefinition
        C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\assert.h(3
4) : see previous definition of 'assert'
[  0%] Building C++ object built/tmp/dtoolbase_composite2.obj
cl : Command line warning D9002 : ignoring unknown option '/favor:blend'
dtoolbase_composite2.cxx
[  0%] Building C object built/tmp/dtoolbase_lookup3.obj
cl : Command line warning D9002 : ignoring unknown option '/favor:blend'
lookup3.c
[  0%] Building C++ object built/tmp/dtoolbase_indent.obj
cl : Command line warning D9002 : ignoring unknown option '/favor:blend'
indent.cxx
[  1%] Building C object built/tmp/dtoolutil_gnu_getopt.obj
cl : Command line warning D9002 : ignoring unknown option '/favor:blend'
gnu_getopt.c
[  1%] Building C object built/tmp/dtoolutil_gnu_getopt1.obj
cl : Command line warning D9002 : ignoring unknown option '/favor:blend'
gnu_getopt1.c
[  1%] Building C++ object built/tmp/dtoolutil_composite.obj
cl : Command line warning D9002 : ignoring unknown option '/favor:blend'
dtoolutil_composite.cxx
[  1%] Linking dynamic library built/bin/libp3dtool.dll
built/tmp/dtool_dtool.obj : fatal error LNK1112: module machine type 'X86' confl
icts with target machine type 'x64'
Storing dependency cache.
Elapsed Time: 50 sec

Build terminated.

I was trying to compile Panda3D with 64-bit Python but seeing that it’s nearly impossible, I won’t mind getting it to be with Python 32-bit as long as it’s version 2.7.2.

  1. Any tips on how to set my Panda3D source environment from “x64” to 32-bit?
  2. Has anyone managed to compile Panda3D in x64? If so, mind sharing the howto/thirdparty tools?
  3. The lazy solution, has anyone compiled Panda3D cvs with Python 2.7.2? If so, mind sharing the compiled build? 32-bit or 64-bit will be fine, I just want to start programming with Panda3D.

Thanks in advance.

1.7.2 will not compile in Win64, but 1.8.0 (the cvs trunk) will, provided you supply a 64-bit version of all of the thirdparty libraries.

But if all you want is to try out Panda3D, and you don’t mind Win32, then I suggest just using Win32. For that, you simply need to get and use a 32-bit version of Python.

David

Thanks for the reply David,

I’m interested in the 64-bit version of the thirdparty libraries. Is it readily available somewhere?

I might go back to Panda3D 1.7.2 with Python 2.6.5 32-bit if I still can’t compile it with Python 2.7.2 (32/64-bit) correctly. Currently updating the cvs so I can experiment a bit.

So until that, no more compiling for me. Will see if I still have problem after this. Thanks again.

Here’s my thirdparty directory, which is appropriate for 1.8.0 and which includes 32-bit and 64-bit libraries. I’m not 100% sure it has all of the same libraries offered by the thirdparty.zip files here, but it should be a good starting point, at least.

ddrose.com/~drose/thirdparty.zip

David

Wow this is really great! Thank you very much David, you’re really a big help! I can’t wait to update the cvs so I can really test this out. This is very exciting.

Ok I done downloading the thirdparty zip file, When I try to compile Panda3D again, I get the same error. So basically I’m currently incapable of compiling 64-bit Panda3D.

Did you manage to compile a 64-bit Panda3D? If so, any pointer of the command-line argument you used?

How do I set the cvs source to use 32-bit environment instead of x64? Anything I need to alter from makepanda.py or makepandacore.py so that compiling will use 32-bit?

Thanks again.

I just found out that Visual C++ 2008 Express by default don’t have the capability to compile 64-bit program. Just great. http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/ have some sort of workaround for the rest of us who’s stuck with Express version of Visual C++. But for me, which am using Windows SDK 7.1 with .Net 4 is currently out of luck.

So I will need to solve this issue first before continuing to test to compile 64-bit version of Panda3D. It would be great is someone can help me out in using cmd.exe to compile 64-bit Panda3D with Windows SDK v7.1 and Visual C++ 2008 Express. Anyone who have successfully compiled in similar system will be a great help.

Thanks.