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

Reply via email to