in reply to PAR::Filter::Crypto Fails

Your packed executable needs to include several of the dynamic libs. These can be passed using --link arguments but it can be a pain to find out which ones to add, which is where App::PP::Autolink is useful.

It seems App::PP::Autolink does not process modules passed with the -M flag, but you an always add it to your script explicitly.

use strict; use warnings; use Data::Dumper; use Filter::Crypto::Decrypt; print "Hello There...\n";

This then produces the output below on my Windows machine using Strawberry perl 5.32, which indicates the zlib and libcrypto dynamic libs are needed.

pp_autolink -F Crypto -M Filter::Crypto::Decrypt 11151848.pl DLL check iter: 1 DLL check iter: 2 DLL check iter: 3 No alien system dlls detected Detected link list: c:\perls\5.32.1.1_pdl\c\bin/zlib1__.dll c:\perls\5 +.32.1.1_pdl\c\bin/libcrypto-1_1-x64__.dll Detected alien list: CMD: pp --link c:\perls\5.32.1.1_pdl\c\bin/zlib1__.dll --link c:\perls +\5.32.1.1_pdl\c\bin/libcrypto-1_1-x64__.dll -F Crypto -M Filter::Cryp +to::Decrypt 11151848.pl

Replies are listed 'Best First'.
Re^2: PAR::Filter::Crypto Fails
by cmv (Chaplain) on Apr 26, 2023 at 14:11 UTC
    ++swl Many thanks for your clear and concise explanation - very much appreciated!

    I'm guessing that running the resulting executable on the development machine worked because these shared libraries were already installed. Since the pristine machine didn't have them, I need to provide them as part of the exe package.

      Yes, that's correct.

      For my own dev environment I have no perls in the system path. I use the portableshell.bat script that comes with Strawberry perl to set up the environment. Testing is then a case of running the executable in a new shell.