http://www.perlmonks.org?node_id=866030

dxxd116 has asked for the wisdom of the Perl Monks concerning the following question:

Hello, Everyone: I encountered these errors when trying to use the Par::packer(Version: 0.991) installed from ppm.
pp -o a.exe -i favion3.ico -g GUI-a.pl

It looks like you don't have a C compiler on your PATH, so you will no +t be able to compile C or XS extension modules. You can install GCC from t +he MinGW package using the Perl Package Manager by running: ppm install MinGW Perl lib version (5.12.2) doesn't match executable version (v5.12.0) a +t C:/perl/lib/Config.pm line 50. Compilation failed in require at C:/perl/lib/Errno.pm line 8. BEGIN failed--compilation aborted at C:/perl/lib/Errno.pm line 8. Compilation failed in require at C:/perl/lib/File/Temp.pm line 148. BEGIN failed--compilation aborted at C:/perl/lib/File/Temp.pm line 148 +. Compilation failed in require at C:/perl/lib/Archive/Zip.pm line 14. BEGIN failed--compilation aborted at C:/perl/lib/Archive/Zip.pm line 1 +4. Compilation failed in require at -e line 449. C:/perl/site/bin/pp.bat: Failed to extract a parl from 'PAR::StrippedP +ARL::Static' to file 'parli08Dp77.exe' at C:/perl/ site/lib/PAR/Packer.pm line 1155, <DATA> line 1.

I tried to install MinGW and see whether it helps. Unfortunately that does not help. Any suggestions would be appreciated. Is there a workable Par::Packer for ActivePer 5.12.2 or I have to downgrade to a previous version of Perl and/or Par::Packer? Thank you, Xingliang

Replies are listed 'Best First'.
Re: installing correct Par::Packer on ActivePerl 5.12.2
by kcott (Archbishop) on Oct 18, 2010 at 19:34 UTC

    I spent a very long time trying to get PAR::Packer to work under ActivePerl and finally gave up.

    I switched to Strawberry Perl and have been using pp quite happily ever since.

    -- Ken

      I spent a very long time trying to get PAR::Packer to work under ActivePerl and finally gave up.

      That's odd, I have activeperl (v5.10.0) and whatever PAR::Packer version PPM gave me and I never had a problem so far (Windows XP 32 bit).

        Finally, when I use ActivePerl v5.10.0, the Par::Packer works. But it does not work on ActivePerl v5.10.1 and v5.12.2, two versions which ActiveState provides downloads on their websites.

        So I think I have to downgrade to ActivePerl v5.10.0.

        Thank you for sharing.

        Xingliang

        Well, I suppose everyone's experiences will differ. The last ActivePerl version I have is 5.10.1 and I'm using XP.

        I recall spending some months following the bug reports quite closely and trying whatever patches became available on CPAN.

        If it helps anyone, I'm currently using Strawberry Perl 5.12.0 and PAR::Packer 1.006

        -- Ken

      Maybe you should have installed a compiler?

        That's odd! I don't recall seeing an Anonymous Monk peering over my shoulder and failing to notice that I did have a compiler installed.

        -- Ken

      I tried several times to switch to Strawberry Perl. But installing modules such as DBD::Mysql became a daunting task for me and I never succeeded. It always failed this test or that test and even "force install" does not help. How do you resolve module installation problem using Strawberry? I was using CPAN module that comes together with Strawberry. But since you are using strawberry happily, there must be some tricks I donot know. Would you like to share some tips? Thank you, Xingliang

        Actually, I said "... using pp quite happily ...". However, I am generally pleased with Strawberry Perl.

        I've found most modules install using the CPAN modules but occasionally some don't. And, yes, force install doesn't always help. There is actually a stronger version of that (fforce) but there are cases where that's not the answer either.

        When the CPAN module hasn't been able to install a module, I revert to the commandline. The usual incantation is

        perl Makefile.PL make make test make install

        but do check the README and INSTALL files for variations, dependencies or additional tasks that may need to be run.

        One point of failure is often make test. There are occasions where the module has built without any problem and will install and run OK but, for whatever reason, one or more tests fail. While I'm not advocating that you skip the tests as a general rule, you can try the make install even if make test failed. I would recommend looking at the test output: the reason for failure may be obvious, e.g. you don't have some server running, your internet access is currently down, and so on.

        With regard to DBD::Mysql, I can't provide any advice from (recent) personal experience - I may have installed that module 10 years ago. What I do recall from installing DBD::* modules generally is that you need to read the README and INSTALL documents very closely.

        -- Ken

Re: installing correct Par::Packer on ActivePerl 5.12.2
by Anonymous Monk on Oct 19, 2010 at 01:28 UTC
    I tried to install MinGW and see whether it helps. Unfortunately that +does not help.
    How did you do it?
    ppm remove MinGW dmake ppm install dmake MinGW
      Just run
      ppm install MinGW
      Then MinGW will be installed together with the dmake utility.
Re: installing correct Par::Packer on ActivePerl 5.12.2
by yoyirod (Initiate) on Dec 21, 2010 at 16:48 UTC

    Hi!

    i've found a solution for my environment:

    • OS: Windows 7 Professional (32 bits)
    • ActiveState perl v5.12.2 build 1203
    • MinGW version 5.1.4.1 from ActiveState
    • PAR-Packer 0.991 from trouchelle

    MinGW and PAR-Packer were installed ussing ppm

    pp complained about versions, so...

    1. Open config.pm file at %perlroot%/lib
    2. Find code
      $^V eq 5.12.2 or die "Perl lib version (5.12.2) doesn't match executable version + (" . sprintf("v%vd",$^V) . ")";
    3. Replace with
      $^V eq 5.12.2 or $^V eq 5.12.0 or die "Perl lib version (5.12.2) doesn't match executable version + (" . sprintf("v%vd",$^V) . ")";

    pp works after that.

    HTH

    Rodrigo