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: jrushwo...@divestco.com Status: new Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=120131 >
On 2017-02-06 22:26:13, jrushwo...@divestco.com 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