[rt.cpan.org #120131] PAR::Packer DynaLoader Problem On Strawberry Perl 5.24.1

[email protected] ("Roderich Schupp via RT")
Newsgroups perl.par
Message-ID <[email protected]>
Tue Feb 07 03:24:30 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: [email protected]
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=120131 >


On 2017-02-06 22:26:13, [email protected] wrote:
> This is the error message:
> 
> Can't load
> 'C:\Users\NTHOMP~1\AppData\Local\Temp\par-6e74686f6d70736f6e\cache-
> a689a490f84fa6e443fb002bba992a32a268b542\e88b1fb1.xs.dll'
> for module Tk::PNG: load_file:The specified module could not be found
> at
> C:/Perl64/perl/lib/DynaLoader.pm line 193.

Most likely the Perl "glue" library for Tk::PNG (probably called .../TK/PNG/PNG.xs.dll)
is linked with the png library (included in Strawberry Perl as c/bin/libpng16-16__.dl),
but this libpng isn't included in the executable generated by pp.

PAR::Packer doesn't know about dependencies like this and never packs non-Perl
libraries unless explicitly told to do so. In this case

pp --link libpng16-16__.dll ...

should do the trick. You may verify that libpng gets packed by looking at the
output of
 
unzip -l your.exe

In general, if module Foo::Bar shows this problem, locate its "glue" library
.../Foo/Bar/Bar.xs.dll, then run

objdump -ax ../Foo/Bar/Bar.xs.dll | perl -ne 'print if /DLL Name/'

to show the libraries it is linked with, e.g.

        DLL Name: msvcrt.dll
        DLL Name: libpng16-16__.dll
        DLL Name: KERNEL32.dll
        DLL Name: perl524.dll

Ignore Windows system libraries like msvcrt.dll and KERNEL32.dll, also the
Perl shared library perl*.dll. The rest should be specified as --link's 
on the pp command line.

Cheers, Roderich
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.