[capi-sig] Differences between 32-bit and 64-bit python25.lib

Dorian Krause doriankrause at web.de
Mon Jun 22 19:43:28 CEST 2009

Jesse Lehrman wrote:
> I'm trying to compile SIP/PyQT 4.5 for Windows Python 64-bit. I'm running into an error when attempting to link the SIP/PyQT object files against python25.lib. The errors are "can't find reference..." to symbols that should be in python25.lib. I tried using the 32-bit version of python25.lib and it worked. This led me to look at python25.lib using dumpbin.exe. I'm using the install binaries from www.python.org.
> It seems that most of the exports in the 32-bit version have a preceding underscore while in the 64-bit version they don't. For example:
> python25.lib 32-bit:
>                   _PyFloat_AsDouble
>                   _PyFloat_AsReprString
>                   _PyFloat_AsString
>                   _PyFloat_Fini
>                   _PyFloat_FromDouble
>                   _PyFloat_FromString
>                   _PyFloat_Type
> python25.lib 64-bit:
>                   PyFloat_AsDouble
>                   PyFloat_AsReprString
>                   PyFloat_AsString
>                   PyFloat_Fini
>                   PyFloat_FromDouble
>                   PyFloat_FromString
>                   PyFloat_Type
> Does anybody have an idea of why this is done and how I can get around it?
> Thank you,
> Jesse
> ________________________________
> Please consider the environment before printing this email.
> _______________________________________________
> capi-sig mailing list
> capi-sig at python.org
> http://mail.python.org/mailman/listinfo/capi-sig
(forgot to reply to the mailinglist)

This might be related to the calling convention?! 32 bit compiled, 
_cdecl functions are get a prepended underscore, see 
http://support.microsoft.com/kb/100832. As this thread ( 
) there is only one 64 bit calling convention and therefor no underscore

Hope this is correct ;) ,

More information about the capi-sig mailing list