Skip Menu |

This queue is for tickets about the PAR CPAN distribution.

Report information
The Basics
Id: 20732
Status: resolved
Priority: 0/
Queue: PAR

People
Owner: Nobody in particular
Requestors: james.baker [...] ericsson.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.90
Fixed in: (no value)



Subject: PAR on Win 2000 - Problem loading dll file for Win32::OLE
Hi, I am a Win32 user, operating system Windows 2000. I am using the following ActiveState Perl: This is perl, v5.8.8 built for MSWin32-x86-multi-thread (with 25 registered patches, see perl -V for more detail) Binary build 817 [257965] provided by ActiveState http://www.ActiveSta te.com Built Mar 20 2006 17:54:25 I am trying to build a a standalone exe for an application which uses Perl/Tk to implement a gui, and uses Win32::OLE to read and write Excel spreadsheets. The perl script itself runs fine, but when I make a PAR and try to run it I get the following: C:\data\perl\dbcompare\_in_progress>pp -o dbcompare.exe dbcompare.pl C:\data\perl\dbcompare\_in_progress>dbcompare.exe Can't load 'C:\DOCUME~1\epajsb\LOCALS~1\Temp\par-EPAJSB\cache-11540568 65\d427ea61.dll' for module Win32::OLE: load_file:The specified proced ure could not be found at D:/cpanrun/build/5-8-0/lib/DynaLoader.pm lin e 229. at ../blib/lib/PAR/Heavy.pm line 107 Compilation failed in require at script/dbcompare.pl line 155. BEGIN failed--compilation aborted at script/dbcompare.pl line 155. The line in my script where it fails is: use Win32::OLE; This is my first attempt at using PAR, so I am hoping that this is just due to user error! (I want to put perl2exe in the bin - it is nothing but trouble!) Thanks in advance for your help.
Hi, On Do. 27. Jul. 2006, 23:51:16, jsb wrote: Show quoted text
> I am a Win32 user, operating system Windows 2000. I am using the > following ActiveState Perl: > > This is perl, v5.8.8 built for MSWin32-x86-multi-thread > (with 25 registered patches, see perl -V for more detail) > Binary build 817 [257965] provided by ActiveState http://www.ActiveSta > te.com > Built Mar 20 2006 17:54:25
I don't have Windows, so I can't directly help you. I forwarded your request to the PAR mailing list. I don't know whether you got the reply, so I'll quote it here: From Mark Dootson: ----- Hi, The error message you are seeing suggests that the dll for Win32::OLE is attempting to load a different version of one of its dependencies when run as Parl as opposed to by your perl.exe. The dependencies for Win32::OLE on my system are: C:\perl\bin\perl58.dll c:\windows\system32\kernel32.dll c:\windows\system32\user32.dll c:\windows\system32\advapi32.dll c:\windows\system32\ole32.dll c:\windows\system32\oleaut32.dll c:\windows\system32\ws2_32.dll c:\windows\system32\msvcrt.dll The most likely candidate is perl58.dll (as its the only thing PAR will bundle) Try the following: C:\data\perl\dbcompare\_in_progress>perl dbcompare.pl Just to confirm it works. Then do: C:\data\perl\dbcompare\_in_progress>pp -d -o dbcompare.exe dbcompare.pl The -d parameter will prevent perl58.dll being bundled. So now: C:\data\perl\dbcompare\_in_progress>dbcompare.exe Should work ? If it does, this means that the PAR installation you're using was compiled against a different build of Perl. Solution is to either compile latest PAR yourself against this perl, or get a precompiled PAR built against the correct version. Regards Mark ----- Now, if you go to http://par.wikia.com/wiki/PAR_PPM_Compatibility_List you can find out which PAR binary build is suitable for your Perl. Installing PAR from CPAN shouldn't be a problem - even without a compiler. It'll fetch a binary release if necessary. Just reply to this ticket if you are having any more trouble. Steffen
CC: <par [...] perl.org>
Subject: RE: [rt.cpan.org #20732] PAR on Win 2000 - Problem loading dll file for Win32::OLE
Date: Sun, 30 Jul 2006 15:41:03 +1000
To: <bug-PAR [...] rt.cpan.org>
From: "James Baker \(BR/EPA\)" <james.baker [...] ericsson.com>
Hi Steffen, Thank you and Mark for your help and suggestions. Here is the result. 1. I tried using pp -d -o dbcompare.exe dbcompare.pl as suggested, and the compilation failed as follows: C:\data\perl\dbcompare\_in_progress>pp -d -o dbcompare.exe dbcompare.p l Undefined subroutine &DynaLoader::bootstrap called at D:/cpanrun/build /5-8-0/lib/XSLoader.pm line 111. Compilation failed in require at D:/cpanrun/build/5-8-0/lib/IO/Handle. pm line 256. BEGIN failed--compilation aborted at D:/cpanrun/build/5-8-0/lib/IO/Han dle.pm line 256. Compilation failed in require at D:/cpanrun/build/5-8-0/lib/IO/Seekabl e.pm line 101. BEGIN failed--compilation aborted at D:/cpanrun/build/5-8-0/lib/IO/See kable.pm line 101. Compilation failed in require at D:/cpanrun/build/5-8-0/lib/IO/File.pm line 112. BEGIN failed--compilation aborted at D:/cpanrun/build/5-8-0/lib/IO/Fil e.pm line 112. Compilation failed in require at -e line 305. C:\data\perl\dbcompare\_in_progress> 2. So I went to the link you gave me and tried to pick the right package, but all I get is the following text in the browser and no links: Perl Archive Tookit Audrey Tang (cpan@audreyt.org) 3. Not to be defeated, I went to the link in the Perl documentation for PAR, http://par.perl.org/ , and clicked the download link for the latest release, http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/PAR-0.942.tar.gz I opened up the archive and ran Makefile.pl. Attached is a log of the result, which seemed to go rather well. Full of hope, I tried pp again and... got exactly the same results. :-( I'm hoping that, like me, you don't like to be beaten by a stupid machine and have some more suggestions of things to try. Regards... James Baker Show quoted text
-----Original Message----- From: Steffen Müller via RT [mailto:bug-PAR@rt.cpan.org] Sent: Saturday, 29 July 2006 5:56 AM To: James Baker (BR/EPA) Cc: par@perl.org Subject: [rt.cpan.org #20732] PAR on Win 2000 - Problem loading dll file for Win32::OLE <URL: http://rt.cpan.org/Ticket/Display.html?id=20732 > Hi, On Do. 27. Jul. 2006, 23:51:16, jsb wrote:
> I am a Win32 user, operating system Windows 2000. I am using the > following ActiveState Perl: > > This is perl, v5.8.8 built for MSWin32-x86-multi-thread (with 25 > registered patches, see perl -V for more detail) Binary build 817 > [257965] provided by ActiveState http://www.ActiveSta te.com Built Mar > 20 2006 17:54:25
I don't have Windows, so I can't directly help you. I forwarded your request to the PAR mailing list. I don't know whether you got the reply, so I'll quote it here: From Mark Dootson: ----- Hi, The error message you are seeing suggests that the dll for Win32::OLE is attempting to load a different version of one of its dependencies when run as Parl as opposed to by your perl.exe. The dependencies for Win32::OLE on my system are: C:\perl\bin\perl58.dll c:\windows\system32\kernel32.dll c:\windows\system32\user32.dll c:\windows\system32\advapi32.dll c:\windows\system32\ole32.dll c:\windows\system32\oleaut32.dll c:\windows\system32\ws2_32.dll c:\windows\system32\msvcrt.dll The most likely candidate is perl58.dll (as its the only thing PAR will bundle) Try the following: C:\data\perl\dbcompare\_in_progress>perl dbcompare.pl Just to confirm it works. Then do: C:\data\perl\dbcompare\_in_progress>pp -d -o dbcompare.exe dbcompare.pl The -d parameter will prevent perl58.dll being bundled. So now: C:\data\perl\dbcompare\_in_progress>dbcompare.exe Should work ? If it does, this means that the PAR installation you're using was compiled against a different build of Perl. Solution is to either compile latest PAR yourself against this perl, or get a precompiled PAR built against the correct version. Regards Mark ----- Now, if you go to http://par.wikia.com/wiki/PAR_PPM_Compatibility_List you can find out which PAR binary build is suitable for your Perl. Installing PAR from CPAN shouldn't be a problem - even without a compiler. It'll fetch a binary release if necessary. Just reply to this ticket if you are having any more trouble. Steffen

Message body is not shown because sender requested not to inline it.

Subject: Re: [rt.cpan.org #20732] PAR on Win 2000 - Problem loading dll file for Win32::OLE
Date: Sun, 30 Jul 2006 11:04:39 +0200
To: bug-PAR [...] rt.cpan.org
From: Steffen Mueller <rt8363b02 [...] sneakemail.com>
Hi James, first off, you should remove the old version of PAR from your system, if at all possible. It shouldn't be a problem to overwrite it, but the reason you were thinking the new version produced the same errors as the old one is that the new one wasn't installed yet: James Baker via RT schrieb: Show quoted text
> *** Module::AutoInstall installation finished. > Fetching 'PAR-0.942-MSWin32-x86-multi-thread-5.8.8.par' from www.cpan. > org... done! > Writing Makefile for PAR
Here, PAR should have written a new Makefile. But it didn't: Show quoted text
> C:\a\PAR-0.942>nmake > > Microsoft (R) Program Maintenance Utility Version 1.50 > Copyright (c) Microsoft Corp 1988-94. All rights reserved. > > NMAKE : fatal error U1064: MAKEFILE not found and no target specified > Stop. > > C:\a\PAR-0.942>
It says 'Makefile' not found! Try rerunning "perl Makefile.PL" in that directory and see whether a "Makefile" exists thereafter. It's not that you did anything wrong. The Makefile.PL just didn't produce a Makefile as it should have. If there's a Makefile, rerun "nmake" and "nmake install" and you should be good to go. Please be patient with me and send me another error log if it does work this time. Perhaps this is a bug in the Makefile.PL (which I am maintaining) or a bug in Module::Install (which I am not maintaining). Steffen
CC: <par [...] perl.org>
Subject: RE: [rt.cpan.org #20732] PAR on Win 2000 - Problem loading dll file for Win32::OLE
Date: Mon, 31 Jul 2006 12:52:07 +1000
To: <bug-PAR [...] rt.cpan.org>, <mark.dootson [...] znix.com>
From: "James Baker \(BR/EPA\)" <james.baker [...] ericsson.com>
Hi Mark & Steffen, OK, it didn't work first time BUT with a little messing around I finally got it going. Mark, "nmake clean" doesn't work. Steffen, it seems that when I tell the Makefile.pl to auto install dependancies, that breaks it. There are 2 ways around it. First way - autoinstall the dependancies myself - unzip PAR and run Makefile.pl etc... Second way - unzip PAR - run Makefile.pl and let it autoinstall the dependancies (this way one gets the correct revisions) - delete the unzippped PAR directory - unzip again and run Makefile.pl etc... One of the tests in nmake test fails, but pp still works. The full log file (minus del commands etc...) is attached with a few comments added. Thanks guys for all your help. James Baker Show quoted text
-----Original Message----- From: Mark Dootson [mailto:mark.dootson@znix.com] Sent: Monday, 31 July 2006 3:54 AM To: James Baker (BR/EPA) Cc: Steffen Mueller Subject: Re: [rt.cpan.org #20732] PAR on Win 2000 - Problem loading dll file for Win32::OLE James, When you ran the Makefile for PAR, according to the output you appended, it didn't actually install par. It always fails for me too if I have to install dependencies from cpan first. So all you should need to do is go back to your downloaded PAR directory and run again: C:\a\PAR-0.942>nmake clean C:\a\PAR-0.942>perl makefile.pl C:\a\PAR-0.942>nmake C:\a\PAR-0.942>nmake test C:\a\PAR-0.942>nmake install There's a good chance it should all work after this. Regards Mark
-----Original Message----- From: Steffen Mueller via RT [mailto:bug-PAR@rt.cpan.org] Sent: Sunday, 30 July 2006 7:05 PM To: James Baker (BR/EPA) Cc: par@perl.org Subject: Re: [rt.cpan.org #20732] PAR on Win 2000 - Problem loading dll file for Win32::OLE <URL: http://rt.cpan.org/Ticket/Display.html?id=20732 > Hi James, first off, you should remove the old version of PAR from your system, if at all possible. It shouldn't be a problem to overwrite it, but the reason you were thinking the new version produced the same errors as the old one is that the new one wasn't installed yet: James Baker via RT schrieb:
> *** Module::AutoInstall installation finished. > Fetching 'PAR-0.942-MSWin32-x86-multi-thread-5.8.8.par' from www.cpan. > org... done! > Writing Makefile for PAR
Here, PAR should have written a new Makefile. But it didn't:
> C:\a\PAR-0.942>nmake > > Microsoft (R) Program Maintenance Utility Version 1.50 > Copyright (c) Microsoft Corp 1988-94. All rights reserved. > > NMAKE : fatal error U1064: MAKEFILE not found and no target specified > Stop. > > C:\a\PAR-0.942>
It says 'Makefile' not found! Try rerunning "perl Makefile.PL" in that directory and see whether a "Makefile" exists thereafter. It's not that you did anything wrong. The Makefile.PL just didn't produce a Makefile as it should have. If there's a Makefile, rerun "nmake" and "nmake install" and you should be good to go. Please be patient with me and send me another error log if it does work this time. Perhaps this is a bug in the Makefile.PL (which I am maintaining) or a bug in Module::Install (which I am not maintaining). Steffen
Download par_install_2.log
application/octet-stream 34.5k

Message body not shown because it is not plain text.

CC: <par [...] perl.org>
Subject: Re: [rt.cpan.org #20732] PAR on Win 2000 - Problem loading dll file for Win32::OLE
Date: Tue, 1 Aug 2006 10:55:58 +1000
To: "James Baker \(BR/EPA\)" <james.baker [...] ericsson.com>, <bug-PAR [...] rt.cpan.org>, <mark.dootson [...] znix.com>
From: "Sisyphus" <sisyphus1 [...] optusnet.com.au>
Show quoted text
----- Original Message ----- From: "James Baker (BR/EPA)" <james.baker@ericsson.com>
> Mark, "nmake clean" doesn't work.
Yep - won't work if the Makefile has not been created. Of course, if the Makefile has not been written, then there shouldn't be any need to run 'nmake clean' - so the fact that it didn't work shouldn't really matter. (If I want to be 100% sure that I am in fact starting afresh, I'll delete the entire build directory, then unpack the source again, and then run 'perl Makefile.PL', etc.)
> One of the tests in nmake test fails, but pp still works.
You can see the code for that test (test 7) in PAR-0.942/contrib/automated_pp_test/automated_pp_test.pl. Search for the string "Next Test 007" (minus the quotes). You can also get more meaningful output by running (before you run 'nmake install'): perl -Mblib t\2-pp.t After 'nmake install' you can get the same verbose output by running simply: perl t\2-pp.t (There might be a lot of output - so maybe best to redirect to a logfile.) Hopefully you'll then have a better idea of what was the problem with test 7. Afaik, there should be *no* failures. The problem should at least be properly diagnosed (if not fixed) - otherwise it's bound to bite you later on :-) Cheers, Rob