Re: Unable to compile XML::Xerces-2.4.0 under Windows
[email protected] (Jason E. Stewart)
| Newsgroups | gmane.text.xml.xerces-p.devel |
|---|---|
| Message-ID | <[email protected]> |
Martin Raspe <[email protected]> writes: > > I found it: "read" and "write" get declared in > > > perl/lib/CORE/win32IOp.h (this is Perl 5.6) > > #define read(fd,b,s) win32_read(fd,b,s) > > > #define write(fd,b,s) win32_write(fd,b,s) > > What I haven't found is where to switch it off with an #undef in > > Xerces.cpp. > > > Here it is: > xerces.cpp, line 258 > > /* Get rid of free and malloc defined by perl */ > #undef free > #undef malloc > #undef read <--- new > #undef write <--- new Yes, Perl is notorious for not properly prefixing common macro names like this - this is the correct place to add them. I can get this added to the swig runtime files so it will appear their in later XML-Xerces releases. The problem is these are pre-processor macros, and so namespaces don't work. > But now I see new ones, further down in Xerces.cpp - I guess I'll > give it up for the moment. Ah, let me know what these are. Your strategy of putting #undef's in Xerces.cpp is the correct one. Cheers, jas.