Mistery solved…
I was using –I path_to_the_dll/foo.dll (upercase i) instead of –l (lower case
l) to include the dll…
With a ppoptions_file.txt having
-l C:/strawberry/c/bin/libeay32_.dll
-l C:/strawberry/c/bin/ssleay32_.dll
-l C:/strawberry/c/bin/zlib1_.dll
foo.pl with
use strict;
use warnings;
use LWP::UserAgent;
print LWP::UserAgent->new()->get("https://www.google.com")->content
pp @ppoptions_file.txt -o foo.exe -x foo.pl
works when my perl file hierarchy is removed from the path.
And my first script involving the modules
-M PerlIO
-M PerlIO::scalar
-M Storable
-l C:/strawberry/c/bin/libeay32_.dll
-l C:/strawberry/c/bin/ssleay32_.dll
-l C:/strawberry/c/bin/zlib1_.dll
Works also
Thanks for helping !!
François
From: Roderich Schupp [mailto:[email protected]]
Sent: 22 August 2017 22:43
To: RAPPAZ Francois <[email protected]>
Cc: [email protected]
Subject: Re: LWP::Protocol::https
On Tue, Aug 22, 2017 at 9:55 AM, RAPPAZ Francois via par
<[email protected]<mailto:[email protected]>> wrote:
My verions of perl is 5.24,
PAR::Packer : 1.037
Module::Scan::Deps: 1.22
Running
U:\>objdump -ax C:\strawberry\perl\vendor\lib\auto\Net\SSLeay\SSLeay.xs.dll |
grep "DLL Name"
gives
DLL Name: msvcrt.dll
DLL Name: KERNEL32.dll
DLL Name: LIBEAY32_.dll
DLL Name: SSLEAY32_.dll
DLL Name: perl524.dll
And my modules list is now
-M PerlIO
-M PerlIO::scalar
-M Storable
-I C:\strawberry\c\bin\libeay32_.dll
-I C:\strawberry\c\bin\ssleay32_.dll
Running the exe still gives an error when perl is removed from my path
Error GETing https://services.rero.ch/item/1001528198/rero-number: Can't load
'C:\Users\rappazf\AppData\Local\Temp\par-72617070617a66\cache-9942ab0986081e5dff470e0df2c8c9c1ba12bd73\cb0163b7.xs.dll'
for module Net::SSLeay: load_file:The specified module could not be found
(LWP::Protocol::https not installed) at script/reroid.pl<http://reroid.pl> line
21.
I just checked Strawberry 5.24.2.1 and it turns out that c/bin/libeay32_.dll is
linked against zlib1_.dll, so you should "--link" that, too.
Please check what actually got packed (and with what path) into your executable
by running something like "unzip -l" on it.
Running
pp -o foo.exe -E "use LWP::UserAgent; say
LWP::UserAgent->new()->get('https://www.google.com')->content;"
works but foo.exe alone crash with
SSL_ca_file U:\docs\perl\etiquettes_explores does not exist at IO/Socket/SSL.pm
line 399.
Weird. Do you have that file in an environment variable, e.g.
PERL_LWP_SSL_CA_FILE or HTTPS_CA_FILE?
Cheers, Roderich