----- Original Message ----- 
From: "Priit Randla" <[EMAIL PROTECTED]>
To: "m.nooning" <[EMAIL PROTECTED]>
Cc: <[email protected]>
Sent: Tuesday, September 06, 2005 11:41 PM
Subject: Re: Yet another 'Entry point not found'


> m.nooning wrote:
>
> > Priit Randla wrote:
> >
> >>
> >>    Hello everybody,
> >>
> >> I have to admit I have never used perl and/or PAR under windows
> >> before; therefore it's possible I miss something obvious...
> >> So my problem follows:
> >> I wrote a Perl script under linux and now have to deploy it on
> >> Windows XP-running computers.
> >> Installed Perl from Activestate (5.8.7), installed all needed
> >> prerequisites, added a couple binmode(FH) calls and
> >> everything worked ok. Thought it would be better if I could deploy
> >> just an executable pogram and tried to use PAR.
> >> Tried both PAR 0.75 (activestate repository) and PAR 0.89
> >> (www.bribes.org repository).
> >> I did 'pp -o send_data.exe send_data.pl' and it created send_data.exe
> >> as requested.
> >> Unfortunately, when I tried to run send_data.exe as next step, I got
> >> a popup -
> >> "send_data.exe - Entry point not defined"
> >> 'The procedure entry point PL_memory_wrap could not be located in the
> >> dynamic link library perl58.dll'
> >> ... and also errors on cmd window:
> >> Can't load
> >>
'C:\DOCUME~1\kasutaja\LOCALS~1\Temp\par-kasutaja\cache-1125923635\6b24f9a6.d
ll'
> >> for module Socket: load_file:The specified procedure could
> >> not be found at C:/aperl58/lib/DynaLoader.pm line 230.
> >> at ../blib/lib/PAR/Heavy.pm line 107
> >> Compilation failed in require at IO/Socket.pm line 12.
> >> BEGIN failed--compilation aborted at IO/Socket.pm line 12.
> >> Compilation failed in require at Net/LDAP.pm line 8.
> >> BEGIN failed--compilation aborted at Net/LDAP.pm line 8.
> >> Compilation failed in require at script/send_data.pl line 6.
> >> BEGIN failed--compilation aborted at script/send_data.pl line 6.
> >>
> >> I looked at mailinglist archives and tried to 'pp -l
> >> %path_to_Socket.dll% -o ...' but only thing it changed was error
> >> message:
> >> It began now as:
> >> 'Can't load
> >>
'C:\DOCUME~1\kasutaja\LOCALS~1\Temp\par-kasutaja\cache-11259124141\Socket.dl
l'
> >> for module Socket: load_file:The specified procedure could
> >> not be found at C:/aperl58/lib/DynaLoader.pm line 230.
> >> ...'
> >> All modules installed/used are from Activestate repository - nothing
> >> made by me.
> >>
> >> Sorry if it's something very obvious - i've never used PAR before.
> >>
> >> Priit
> >>
> > Can you post a very stripped down script that exhibits the problem?
>
>
> Fortunately(?)  the test program is ... umm ... quite short. It's like
this:
> #-------------- start ------
> use Net::LDAP;
> #-------------- end ------
> And, before anybody asks - I _can_ produce also working .exe's. These
> obviously
> do not use Net::LDAP...
>
> Priit

Hi,

For me (having installed the perl-ldap ppm from the uwinnipeg repository):

D:\pscrpt>perl -e "print $]"
5.008007
D:\pscrpt>perl -MNet::LDAP -e "print $Net::LDAP::VERSION"
0.29
D:\pscrpt>perl -MPAR -e "print $PAR::VERSION"
0.89
D:\pscrpt>type try.pl

use warnings;
use Net::LDAP;
print "DONE\n";

D:\pscrpt>perl try.pl
DONE

D:\pscrpt>pp -o try.exe try.pl

D:\pscrpt>try.exe
DONE

D:\pscrpt>

However, the perl I'm using was built with MinGW (gcc) and dmake. I can't
think of any reason that should make a difference .... but who knows ....

I'm also using a PAR that I've built myself  - but when I install the PAR
from the bribes repository I *do* get the error that you report when I run
the excutable:

D:\pscrpt>perl -MPAR -e "print $PAR::VERSION"
0.89
D:\pscrpt>perl try.pl
DONE

D:\pscrpt>pp -o try.exe try.pl

D:\pscrpt>try.exe
Can't load
'C:\DOCUME~1\Rob\LOCALS~1\Temp\par-Rob\cache-1126059750\72a4c9ad.dll' for
module Socket: load_file:The specified procedure could not be found at
C:/aperl58/lib/DynaLoader.pm line 230.
 at ../blib/lib/PAR/Heavy.pm line 107
Compilation failed in require at IO/Socket.pm line 12.
BEGIN failed--compilation aborted at IO/Socket.pm line 12.
Compilation failed in require at Net/LDAP.pm line 8.
BEGIN failed--compilation aborted at Net/LDAP.pm line 8.
Compilation failed in require at script/try.pl line 3.
BEGIN failed--compilation aborted at script/try.pl line 3.

D:\pscrpt>

That's accompanied by a pop-up telling me that the procedure entry point
PL_memory_wrap could not be found.

I'm now wondering if the problem is that this version of PAR was built using
a version of perl that is somewhere in the range 5.8.0 to 5.8.6 - and that
it therefore will be reliable only on versions of perl within that range. If
I'm right about this (which is *not* guaranteed), then the fix is either for
you to switch to a version of perl that's in the range 5.8.0 to 5.8.6, or
for you to start using a PAR that was built on perl 5.8.7. I guess you could
also try the PAR-0.85 ppm from bribes, or the PAR-0.88 ppm from uwinnipeg.

Whatever ... it looks to me that it's fairly certain that the bribes build
of PAR-0.89 is unreliable on perl 5.8.7.

I guess I could also send you a ppm of my 5.8.7-built PAR-0.89 .... and, in
fact, I'll do that if you want.

If Randy Kobes is following this (and is running perl 5.8.7) he might even
place a ppm of PAR-0.89 on his uwinnipeg repository. Randy ???

Cheers,
Rob


Reply via email to