64-bit wxPython Compile errors

Dave Burdick dburdick at skinvue.net
Fri Dec 28 22:15:47 PST 2007


Robin Dunn <robin <at> alldunn.com> writes:

> 
> Dave Burdick wrote:
> > I've managed to compile the wx DLL's in 64-bit, but I'm having trouble 
> > compiling the rest of it (i.e. the Python extension .PYD files).  It's 
bombing 
> > when I run the setup.py command:
> > 
> > C:\Python25\python.exe setup.py build_ext --inplace MONOLITHIC=0
> > 
> > Here's the dump:
> > 
> > C:\wxPythonSrc\wxPython-src-2.8.7.1\wxPython>C:\Python25\python.exe 
setup.py bui
> > ld_ext --inplace MONOLITHIC=0
> > Preparing CORE...
> > Preparing GLCANVAS...
> > Preparing STC...
> > Preparing ACTIVEX...
> > Preparing GIZMOS...
> > running build_ext
> > building '_core_' extension
> > C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\Bin\x64
\cl.exe /c /nologo /Ox /M
> > D /W4 /GS- /EHsc /DNDEBUG -DWIN32 -D_WINDOWS -D__WXMSW__ -DWXUSINGDLL=1 -
DSWIG_T
> > YPE_TABLE=_wxPython_table -DSWIG_PYTHON_OUTPUT_TUPLE -DWXP_USE_THREAD=1 -
UNDEBUG
> >  -D__NO_VC_CRTDBG__ -D__WXDEBUG__ -DwxUSE_UNICODE=1 -Iinclude -Isrc -
IC:\wxPytho
> > nSrc\wxPython-src-2.8.7.1\lib\vc_dll\mswuh -IC:\wxPythonSrc\wxPython-src-
2.8.7.1
> > \include -IC:\wxPythonSrc\wxPython-src-2.8.7.1\contrib\include -
IC:\Python25\inc
> > lude -IC:\Python25\PC /Tpsrc/helpers.cpp /Fobuild.unicode\temp.win32-2.5
\Release
> > \src/helpers.obj /Gy
> > cl : Command line warning D9025 : overriding '/DNDEBUG' with '/UNDEBUG'
> > helpers.cpp
> > C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/choicebk.h(96) : warning 
C4267: '
> > =' : conversion from 'size_t' to 'int', possible loss of data
> > C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/choicebk.h(97) : warning 
C4267: '
> > argument' : conversion from 'size_t' to 'int', possible loss of data
> > C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/filename.h(393) : error 
C2666: 'w
> > xString::operator []' : 3 overloads have similar conversions
> >         C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/string.h(824): 
could be '
> > wxChar &wxString::operator [](wxStringBase::size_type)'
> >         C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/string.h(822): 
or 'wxChar
> >  &wxString::operator [](int)'
> >         or 'built-in C++ operator[(wxChar, unsigned int)'
> >         while trying to match the argument list '(wxString, unsigned int)'
> > C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/htmllbox.h(261) : warning 
C4267:
> > 'return' : conversion from 'size_t' to 'unsigned int', possible loss of 
data
> > error: command 'cl.exe' failed with exit status 2
> > 
> > I'm using a 64-bit version of Python 2.5.1 (the standard 64-bit Windows 
> > download from Python) using the VC8 SDK compiler.  Could it be that there 
are 
> > incompatiblities beween the VC8 compiler and the VC7.1 compiler which was 
used 
> > to compile Python 2.5.1 that could be causing the problem?
> 
> You probably will run into that problem, but you haven't gotten that far 
> yet.  This one is a more general C++ error saying that it can figure out 
> what is supposed to be used for this statement because of ambiguities 
> related to the data types used.  I'm not sure why that is not happening 
> for other 64-bit compilers however...
> 

Thanks Robin.  I managed to get a bit further by omitting unicode from the 
build.  Now however, I'm getting a link error:

build\temp.win32-2.5\Release\src/helpers.obj : fatal error LNK1112: module 
machine type 'X86' conflicts with target machine type 'x64'
error: command 'link.exe' failed with exit status 1112

So I assume that the wx helpers.obj file is a 32-bit file.  Then I try to re-
compile helpers.cpp and get the overload errors again:

C:\wxPythonSrc\wxPython-src-2.8.7.1\wxPython\src>cl.exe /EHsc helpers.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 14.00.50727.762 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

helpers.cpp
C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/filename.h(393) : error 
C2666: 'wxString::operator []' : 3 overloads have similar conversions
        C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/string.h(824): could 
be 'wxChar &wxString::operator [](wxStringBase::size_type)'
        C:\wxPythonSrc\wxPython-src-2.8.7.1\include\wx/string.h(822): 
or 'wxChar &wxString::operator [](int)'
        or 'built-in C++ operator[(wxChar, unsigned int)'
        while trying to match the argument list '(wxString, unsigned int)'

Do you or does anyone know how to correct this problem via a compiler switch 
or setting to ignore overload errors?

Thanks




More information about the wxpython-users mailing list