Tue Feb 08 05:46:38 2011: Request 65535 was acted upon.
Transaction: Correspondence added by RSCHUPP
Queue: PAR
Subject: Unable to run perl script packaged with pp under cygwin on
another Windows XP installation
Broken in: (no value)
Severity: (no value)
Owner: Nobody
Requestors: [email protected]
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=65535 >
On 2011-02-07 11:25:16, [email protected] wrote:
> I created a perl script parseDealerFiles.exe with pp:
> pp -o parseDealerFiles.exe -c read_agency.pl
>
> The resulting package runs fine on the build system. On other
> platforms, however, it fails.
That's to be expected. The resulting executable still "lives"
in the Cygwin universe, hence needs a minimal Cygwin runtime.
If you want a real standalone executable, I suggest you use
a "native" Perl distribution, e.g. ActiveState or Strawberry.
Back to Cygwin: I just tried a minimal example (note that I
have gcc-4 installed and built my PAR::Packer with it).
$ pp -o hello.exe -e 'print "hello cygwin\n"'
The resulting hello.exe is linked with (in addition to
the Windows kernel32.dll)
DLL contained in Cygwin package
cygwin1.dll cygwin-1.7.7-1
cyggcc_s-1.dll cyggcc_s-1.dll
cygssp-0.dll libssp0-4.3.4-3
If you look into the cache area, C:/temp/par-USER/SHA1CHECKSUM
or similar, you'll see an executable called "hello" (it's
different from hello.exe - it's actually a special purpose
Perl interpreter). "hello" is also linked against the above
DLLs plus cygperl5_10.dll (which can also be found in the
cache area). The latter is in turn linked with
cygcrypt-0.dll (contained in crypt-1.1-1)
cygwin1.dll
cyggcc_s-1.dll
cygssp-0.dll
So all Cygwin packages mentioned above need to be installed
whereever you want to run the executable. (Package "perl" should NOT
be needed, as cygperl5_10.dll has been packed in.)
> I attempted to fix this problem by installing a minimal version of
> cygwin+perl on the clean system. That didn't work either - I hit
> some problem with the POSIX module:
> Can't locate
./C:/TEMP/par-OCheyette/cache-f3bb3a3b5cf33a95f9828a5031438146c41d2801/inc/lib/auto/POSIX/load_import.al
Different problem. Strange path name:
- note ".C/:" at the beginning
- the file is actually called load_imports.al (note the "s")
Cheers, Roderich