user271914
user271914

Reputation: 63

Perl Module install error CPAN Spreadsheet::ParseExcel

hi am trying to install perl module from cpan in my windows machine am getting below error after hitting two times yes .

Checking if your kit is complete...
Warning: the following files are missing in your kit:
README
    Please inform the author.
    Writing Makefile for Digest::Perl::MD5
    'nmake' is not recognized as an internal or external command,
    operable program or batch file.
      nmake  -- NOT OK
    Running make test
      Can't test without successful make
    Running make install
      make had returned bad status, install seems impossible
    Running make for D/DO/DOUGW/Spreadsheet-ParseExcel-0.65.tar.gz
      Is already unwrapped into directory C:\Perl\cpan\build\Spreadsheet-ParseExcel
    0.65

      CPAN.pm: Going to build D/DO/DOUGW/Spreadsheet-ParseExcel-0.65.tar.gz

    'nmake' is not recognized as an internal or external command,
    operable program or batch file.
      nmake  -- NOT OK
    Running make test
      Can't test without successful make
    Running make install
      make had returned bad status, install seems impossible

>perl exceltoxml.pl
Can't locate Spreadsheet/ParseExcel.pm in @INC (@INC contains: C:/Perl/site/lib
    C:/Perl/lib .) at exceltoxml.pl line 4.
    BEGIN failed--compilation aborted at exceltoxml.pl line 4.

I have tried 5 times.

Upvotes: 0

Views: 2606

Answers (2)

David W.
David W.

Reputation: 107040

nmake' is not recognized as an internal or external command

Sinan Ünür is right. The error message is that you don't have nmake installed. This means you are attempting to compile code (probably C code) and there's no C compiler or Make program.

A while ago, I would tell people that ActiveState doesn't fully support cpan because it can't compile code. ActiveState uses it's own pre-compiled packages available via the Perl Package Manager (PPM) which can be used from the command line or from a GUI interface. If a package isn't available via the PPM and it requires compilation, you were just out of luck. I would usually recommend Strawberry Perl instead of ActivePerl for this very reason. Strawberry Perl comes with the complete MinGW environment needed for those compilable CPAN modules.

However, about a half a dozen years ago, ActiveState put together an installable PPM package for the MinGW environment. Once this is installed, ActivePerl can use CPAN.

So you have two solutions:

  • Install this PPM package as Sinan Ünür mentioned in his answer. Then, try Spreadsheet::ParseExcel again.
  • Install Strawberry Perl instead of ActiveState's Perl. Strawberry Perl seems to be more compatible with the version of Perl found on Unix/Mac/Linux systems. Then try installing the Spreadsheet::ParseExcel package.
  • Okay, three solutions: Install Cygwin which will give you the complete Linux Environment on your Windows machine. It can take about two hours to install, but it comes with all of the GNU utilities you've known and love, most other Unix/Linux utilities, and the BASH shell.

    It's what a lot of Linux/Unix homeboys use when they get sick of that ol' C:\> prompt. Cygwin comes with the latest version of Perl and works with every single CPAN package I've tried. There are a few minor issues (Like Termcaps) where things don't quite work the way they're suppose to, but I'm generally happy with it. It even comes with X11 and allows you to run XWindow apps, and even use XWindow apps across systems -- just like a REAL operating system does!

There maybe a few instances where CPAN modules may still have issues on Windows. One has to do with archiving and unarchiving modules and the missing libz library. However, installing this MinGW package (or using Strawberry Perl or Cygwin) will solve about 95% of the cpan installation issues.

Upvotes: 1

Sinan Ünür
Sinan Ünür

Reputation: 118128

I have tried 5 times.

Computers are deterministic things. That means, unless you change the conditions under which a program runs, it will always do the same thing (except, maybe, if there is a solar flare or an EMP).

So, there is no difference between issuing the same command once versus five times. If it failed the first time, ceteris paribus, it fill fail all five times.

That said, it looks like you installed ActiveState Perl, but did not install the MinGW package which provides the gcc & dmake based build tools.

So,

C:\>ppm install MinGW

and then try to install packages.

You also have the option of building your own perl using the Community Edition of Microsoft Visual Studio 2013 tools, or any other supported compiler.

Upvotes: 0

Related Questions