Got this output, Test1, Test2 is mine from the script. C:\Documents and Settings\Travis\Desktop>test.exe extracted lib/auto/Digest/MD5/MD5.dll to C:\DOCUME~1\Travis\LOCALS~1\Temp\par-Tr avis\cache-Cencal\ec2b4451.dll => 0 extracted lib/auto/DBI/DBI.dll to C:\DOCUME~1\Travis\LOCALS~1\Temp\par-Travis\ca che-Cencal\4b50f371.dll => 0 Test1 Test2 IO error: reading header signature : at (eval 25) line 3 extracted lib/auto/DBD/ODBC/ODBC.dll to C:\DOCUME~1\Travis\LOCALS~1\Temp\par-Tra vis\cache-Cencal\3d2b5e28.dll => 4 install_driver(ODBC) failed: Can't load 'C:\DOCUME~1\Travis\LOCALS~1\Temp\par-Tr avis\cache-Cencal\3d2b5e28.dll' for module DBD::ODBC: load_file:%1 is not a vali d Win32 application at C:/strawberry/perl/lib/DynaLoader.pm line 200. at C:/strawberry/perl/vendor/lib/PAR/Heavy.pm line 128 Compilation failed in require at (eval 25) line 3. Perhaps a required shared library or dll isn't installed where expected at script/CenCal.pl line 132
Dir of DLL files it extracted, ODBC.dll is only there because I am including it specifically (that's how I figured out I could copy it from there to 3d2b5328.dll and have it work). Directory of C:\DOCUME~1\Travis\LOCALS~1\Temp\par-Travis\cache-Cencal 03/08/2011 07:53 PM 16,896 32f8f74d.dll 03/08/2011 07:53 PM 0 3d2b5e28.dll 03/08/2011 07:53 PM 15,360 438ebc0d.dll 03/08/2011 07:53 PM 126,464 4b50f371.dll 03/08/2011 07:53 PM 129,536 5ec07803.dll 03/08/2011 07:53 PM 15,872 749ebac9.dll 03/08/2011 07:53 PM 27,136 9c56408b.dll 03/08/2011 07:53 PM 47,616 dbddb085.dll 03/08/2011 07:53 PM 16,896 dda2c15d.dll 03/08/2011 07:53 PM 21,504 e63e42a3.dll 03/08/2011 07:53 PM 20,992 ec2b4451.dll 03/08/2011 07:53 PM 21,504 fe0a3205.dll 03/08/2011 07:53 PM 35,328 libgcc_s_sjlj-1.dll 11/05/2010 09:26 AM 122,368 ODBC.dll 03/08/2011 07:53 PM 1,377,280 perl512.dll On Tue, Mar 8, 2011 at 8:14 AM, Roderich Schupp < [email protected]> wrote: > On Tue, Mar 8, 2011 at 1:58 PM, Travis Williams <[email protected]> wrote: > > All the DLL's when unziped are the correct size. > > Strange. Can you try the following (it's crucial to do it in the order > listed): > > 1. apply the patch below to an unpacked source of PAR > (adds some diagnostic when extracting DLLs) > 2. rebuild and install PAR > 3. do a fresh build and install of PAR::Packer > 4. re-pack your script > 5. completely remove the cache area (C:\temp\par-USER or some such) > 6. run the packed executable from step 4; > this should produce lines like (on stderr) > > extracted lib/auto/Digest/MD5/MD5.so to > > /tmp/par-ccm_root/cache-ce8e8907c5a3c22d60ba163427934b0262c3cf18/c7868040.so > => 0 > > 7. post the complete output from step 6 > > Cheers, Roderich > > === patch follows === > --- lib/PAR/Heavy.pm.orig 2011-03-08 14:24:55.000000000 +0100 > +++ lib/PAR/Heavy.pm 2011-03-08 14:44:30.000000000 +0100 > @@ -164,7 +164,9 @@ > > if ($fh) { > binmode($fh); > - $member->extractToFileHandle($fh); > + my $rc = $member->extractToFileHandle($fh); > + printf STDERR "extracted %s to %s => %d\n", > + $member->fileName, $filename, $rc; > close $fh; > chmod 0755, $filename; > } >
