[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 ( 
http://www.dotnetmonster.com/Uwe/Forum.aspx/vs/6817/Missing-Underscore-in-Name-From-64-bit-Compiler 
) there is only one 64 bit calling convention and therefor no underscore

Hope this is correct ;) ,
Dorian


More information about the capi-sig mailing list