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