BrentD has asked for the wisdom of the Perl Monks concerning the following question:

I have written a program that allows me to input some info, then calls Imager to output the info as Group4 Fax encoded TIF files. I am running this under Windows 10 64-Bit. The program runs fine if I use the .pl file, but if I use pp to build an .exe file and copy to another system, the file will not run. This is my current pp command call:
pp -M Imager::Font::W32 -M Imager::File::TIFF -M -a cbxarrow.xbm -a ar +rowdownwin.xbm -u -o Program.exe Program.pl
This is what happens when I run the .exe file:
E:\>Program.exe Can't load 'C:\Users\generic\AppData\Local\Temp\par-67656e65726963\cac +he-1fbb3c46710e1a62d9823bf27f4a9fe7a961c4bb\c6dc6748.xs.dll' for modu +le Imager::File::TIFF: load_file:The specified module could not be fo +und at C:/Strawberry/perl/lib/DynaLoader.pm line 193. at C:/Strawberry/perl/lib/DynaLoader.pm line 95. DynaLoader::croak("Can't load 'C:\\Users\\generic\\AppData\\Lo +cal\\Temp\\par-67656e657"...) called at C:/Strawberry/perl/lib/DynaLo +ader.pm line 193 DynaLoader::bootstrap("Imager::File::TIFF", 0.89) called at C: +/Strawberry/perl/vendor/lib/PAR/Heavy.pm line 120 PAR::Heavy::_bootstrap("Imager::File::TIFF", 0.89) called at C +:/Strawberry/perl/lib/DynaLoader.pm line 102 DynaLoader::bootstrap_inherit("Imager::File::TIFF", 0.89) call +ed at Imager/File/TIFF.pm line 10 Imager::File::TIFF::BEGIN() called at Imager/File/TIFF.pm line + 11 eval {...} called at Imager/File/TIFF.pm line 11 require Imager/File/TIFF.pm called at TCTC/Dockets.pm line 6 require TCTC/Dockets.pm called at script/Program.pl line 32 main::BEGIN() called at Imager/File/TIFF.pm line 11 eval {...} called at Imager/File/TIFF.pm line 11 require main called at C:/Strawberry/perl/vendor/lib/PAR.pm li +ne 636 PAR::_run_member(Archive::Zip::ZipFileMember=HASH(0x37e33b0), +1) called at script/main.pl line 26 require main called at C:/Strawberry/perl/vendor/lib/PAR.pm li +ne 636 PAR::_run_member(Archive::Zip::ZipFileMember=HASH(0x37e3698)) +called at C:/Strawberry/perl/vendor/lib/PAR.pm line 428 PAR::import("PAR") called at -e line 631 eval {...} called at -e line 41 __par_pl::BEGIN() called at Imager/File/TIFF.pm line 11 eval {...} called at Imager/File/TIFF.pm line 11 BEGIN failed--compilation aborted at Imager/File/TIFF.pm line 11. Compilation failed in require at TCTC/Dockets.pm line 6. Compilation failed in require at script/Program.pl line 32. BEGIN failed--compilation aborted at script/Program.pl line 32. E:\>
Seems obvious that I have some sort of missing dependency, but I can't seem to find what that might be. Any ideas?

Replies are listed 'Best First'.
Re: Imager::File::TIFF Dependencies
by marto (Cardinal) on May 22, 2017 at 21:47 UTC

    when using pp I tend to include the -x flag to determine additional runtime requirements.

      Tried doing pp -x -o test.exe program.pl Running the resultant test.exe produces exactly the same result as from my original post.

        If you can post a minimal example program which replicates your problem, along with your perl version I'll try to replicate and diagnose further.

Re: Imager::File::TIFF Dependencies
by Anonymous Monk on May 22, 2017 at 22:47 UTC
      ppsimple produced exactly the same error message when the exe file was run.

        ppsimple produced exactly the same error message when the exe file was run.

        I'm sorry but thats is impossible :)

        That like saying "doesn't work" without disclosing basic diagnostic/debugging output , which ppsimple.pl produces by default

        update: well I just tested it, it works as expected, so I don't know what you did, I wish you would show me the log

Re: Imager::File::TIFF Dependencies
by soonix (Chancellor) on May 23, 2017 at 09:53 UTC
    Probably not relevant, but what's the empty -M flag for (as in "-M -a cbxarrow.xbm")?
      The empty -M was a typo. Will try to get a minimal example up today. Got a server down atm, so that takes priority.