Tue Feb 07 13:59:13 2017: Request 120131 was acted upon.
Transaction: Correspondence added by RSCHUPP
       Queue: PAR-Packer
     Subject: PAR::Packer DynaLoader Problem On Strawberry Perl 5.24.1
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: jrushwo...@divestco.com
      Status: rejected
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=120131 >


On 2017-02-07 12:57:02, jrushwo...@divestco.com wrote:

> C:\Users\james\AppData\Local\Temp\par-6a616d6573\cache-
> c1546264452e74db829440ed61c603745f7769ed>objdump
> -ax e88b1fb1.xs.dll | perl -ne "print if /DLL Name/"
>         DLL Name: msvcrt.dll
>         DLL Name: libpng16-16__.dll
>         DLL Name: KERNEL32.dll
>         DLL Name: perl524.dll

OK, so PNG.xs.dll only links with libpng16-16__.dll, but try the same
command on libpng16-16__.dll and you'll see that it's linked with some libz*.dll
(which should be added by a --link option). 

> The original error message tells us that it can't find e88b1fb1.xs.dll
> but the same file is in the executable called PNG.xs.dll. Why is it
> able
> to find the file if Strawberry Perl is installed on the machine but
> not
> if it isn't. One of the things I tried is installing Strawberry Perl
> on
> the machine immediately after getting the error message and starting a
> new command prompt with Strawberry Perl in the path and having the
> executable run with no error.

The actual error message from Perl is rather misleading. Perl's DynaLoader
wants to load the "glue" DLL for Tk::PNG, but it fails because the
Windows DLL loader can't find a library that it is directly or indirectly 
linked with. If the machine you run the executbale on has Strawberry installed,
then it *has* the libraries (and the Strawberry installation makes sure that
their location is added to the PATH environment variable). If Strawberry isn't
installed and the libraries haven't been packed in either, then you'll
see the error message.

Cheers, Roderich

Reply via email to