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