[Python-Dev] Suggestion/ feature request (original) (raw)

Julian julvar at tamu.edu
Tue Nov 21 07:29:45 CET 2006


-----Original Message----- From: "Martin v. Löwis" [mailto:martin at v.loewis.de] Sent: Tuesday, November 21, 2006 12:01 AM To: Julian Cc: python-dev at python.org Subject: Re: [Python-Dev] Suggestion/ feature request

Julian schrieb: > I am using python with swig and I get a lot of macro redefinition > warnings like so: > warning C4005: 'CRTSECURENODEPRECATE' : macro redefinition > > In the file - pyconfig.h - rather than the following lines, I was > wondering if it would be more reasonable to use #ifdef statements as > shown in the bottom of the email... While I agree that would be reasonable, I also wonder why you are getting these errors. Where is the first definition of these macros, and how is the macro defined at the first definition? Regards, Martin

In my specific case, the order of the definitions in any wrapper file created by SWIG (I am using Version 1.3.30) looks like this: //example_wrap.cxx //snipped code /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)

define _CRT_SECURE_NO_DEPRECATE

#endif

/* Python.h has to appear first */ #include <Python.h>

//snipped code

SWIG seems to have done it properly by checking to see if it has been defined already (which, I think, is how python should do it as well) Now, even if I am not using SWIG, I could imagine these being defined elsewhere (by other headers/libraries) or even by setting them in the VS2005 IDE project settings (which I actually do sometimes). While these are just warnings and not errors, it would look cleaner if pyconfig.h would check if they were defined already.

Julian.



More information about the Python-Dev mailing list