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

Jesse Lehrman jesse_lehrman at animationlab.com
Tue Jun 23 09:46:47 CEST 2009


Thanks - that's what I've started to figure out. That thread also supports my theory that I'll have to recompile Python using MiniGW.

Jesse

-----Original Message-----
From: capi-sig-bounces+jesse_lehrman=animationlab.com at python.org [mailto:capi-sig-bounces+jesse_lehrman=animationlab.com at python.org] On Behalf Of Dorian Krause
Sent: Monday, June 22, 2009 8:43 PM
Cc: capi-sig at python.org; cplusplus-sig at python.org
Subject: Re: [capi-sig] Differences between 32-bit and 64-bit python25.lib

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
_______________________________________________
capi-sig mailing list
capi-sig at python.org
http://mail.python.org/mailman/listinfo/capi-sig

That does seem to be the case. Any ideas of how to get around it


More information about the capi-sig mailing list