On Sat, 16 Oct 2004, Sisyphus wrote: > Hi, > > Prompted mainly by a question on this list a week or 2 ago (and partly > by my own curiosity) I've just built PGPLOT-2.18 on windows, perl 5.8 > but there's a slight hitch. > > Firstly, as I didn't relish trying to build the pgplot C/Fortran library > from source, I grabbed the one at > http://jrfonseca.dyndns.org/projects/gnu-win32/software/ported/ > > This is a dynamic build of that library, containing 2 dll's named > 'cpgplot.dll' and 'pgplot.dll'. The hitch is that when you build the > PGPLOT module a (perl) dll also called 'pgplot.dll' gets built - and > perl gets confused about which of the 2 pgplot.dll files contains which > "procedure entry points". Consequently the module is unusable. > > My solution was to rename the PGPLOT perl package to WPGPLOT. That way, > the perl dll that gets built is named 'wpgplot.dll' - so there's no > confusion about where the "procedure entry points" are located and > everything works fine. > > My question is: what's the *proper* way to fix this problem ? > > It occurs to me that one solution would be to build against a static > pgplot C/Fortran library. In that case there would still be only the one > pgplot.dll (ie the one that the perl compilation process builds). > > Is that the way to go ? I really don't want to try and build that pgplot > library myself ... and I don't even know if a static build of it is > feasible on windows. Hopefully there's a solution that both avoids the > need of renaming the module, and avoids the need of building a static > pgplot library. > > (I've also posted this on c.l.p.modules .... in the chance that there's > someone there that can offer some assistance.)
This problem also happens with building XML::LibXSLT on Win32, when trying to link against a dynamic libxslt.dll and getting confused with the Perl LibXSLT.dll. Apart from using a static lib instead, one can try to follow the advice given in a message on comp.lang.perl.moderated: do a groups.google.com search for perl libxslt win32 dynaloader Basically, it involves changing DLEXT to, eg, 'xs.dll' in the Makefile, and then changing the bootstrap in the .pm file to (for XML/LibXSLT.pm): local $DynaLoader::dl_dlext = 'xs.dll'; bootstrap XML::LibXSLT $VERSION; -- best regards, randy kobes _______________________________________________ Perl-Win32-Users mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs