For work, I am using Perl 5.16.3 from strawberryperl.com on Windows 7
Pro. I installed PP using CPAN, version 1.014 (PAR ver 1.007)

Disclaimer: I am not a Perl expert. My primary software development
work is for electronic control units. I use Perl to create specialized
tools to aid me and my co-workers' primary work.

I used PP to create an EXE of an in-house tool I wrote that uses
IO::Compress::Zip, which uses Compress::Raw::Lzma, which uses
liblzma-5__.dll, all 3 of which are part of the strawberryperl Perl
ver 5.16.3 package.

Initially, I used "pp -o genuds.exe genuds.pl" However, on PCs without
perl installed (or a different version), Windows would complain it
can't find liblzma-5__.dll

I then tried "pp -c -o genuds.exe genuds.pl" Same result.

Then I tried "pp -x -o genuds.exe genuds.pl" Same result.

Finally, I tried "pp -l liblzma-5__.dll -o genuds.exe genuds.pl" This worked.

Then I started digging into pp and discovered ScanDeps.pm. Looking at
the code, it appears to attempt to detect shared objects, so I am
wondering why the LZMA library was not detected. It was the only one
not detected.

I tried looking at Compress::Raw::Lzma (version 2.060), but I really
don't know enough about extensions to Perl to see anything to explain
why the LZMA lib was not detected.

Maybe this DLL is just too low level to be detected?

I pared down my original program to just the following, and got the same result.

use IO::Compress::Zip qw(zip $ZipError);

my $archive = shift @ARGV;

zip [ @ARGV ] => $archive or die "Zip failed: $ZipError\n";

Reply via email to