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";