pyconfig.h: conflicting definitions for ssize_t
Wolfgang Rohdewald
wolfgang at rohdewald.de
Wed Mar 30 01:51:08 CEST 2011
compiling pykde on windows with msvc2010 on a 32bit Windows 7:
sipdnssdpart0.cpp
R:\include\msvc\sys/types.h(52) : error C2371: 'ssize_t' : redefinition; different basic types
c:\python27\include\pyconfig.h(201) : see declaration of 'ssize_t'
I can fix this by defining ssize_t as long in pyconfig.h or
as int in kdewin/include/msvc/sys/types.h
the original files from windows define SSIZE_T as long so to
me this seems like a bug in pyconfig.h, it should say
typedef _W64 long ssize_t
Python27\include\pyconfig.h says (same in Python32):
#ifdef MS_WIN64
typedef __int64 ssize_t;
#else
typedef _W64 int ssize_t;
#endif
while kdewin/include/msvc/sys/types.h says:
typedef SSIZE_T ssize_t;
SSIZE_T is defined in Microsoft SDKs/Windows/v7.0A/Include/BaseTsd.h:
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
and LONG_PTR from same directory, intsafe.h:
#if (__midl > 501)
typedef [public] __int3264 LONG_PTR;
#else
#ifdef _WIN64
typedef __int64 LONG_PTR;
#else
typedef _W64 long LONG_PTR;
#endif // WIN64
#endif // (__midl > 501)
for __midl see
http://msdn.microsoft.com/en-us/library/aa367301(v=vs.85).aspx
--
Wolfgang
More information about the Kde-windows
mailing list