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


in reply to How to install pp, Wx module in 64 bit windows7 system

Error pop up window says: Unsupported 16-bit Application : The program or feature "Nmake.exe" cannot start or run due to incompatibility with 64-bit versions of windows.

That's as a result of CPAN (still!) stupidly insisting on installing an ancient and broken version of nmake that hasn't been usable to build perl for a decade or more:Fetching 'Nmake15.exe' from download.microsoft.com...

What's worse, it will even do this when you actually do have a modern, working version installed and on the path! Simply because it can't find it. Which isn't surprising given that it looks in the stupidest places and doesn't look in the obvious ones.

So, in the event that you actually do have a compiler correctly installed, it may be that all you need to do is hack the CPAN module to make it look in the right place for it.

Or, skip that dratted module (and its ilk) and simply download the packages yourself and type the 4 short commands required to build, test & install them at the command line. (This is my preferred option, as it usually takes less time to do it myself, than CPAN takes to download the 70MB of worthless crap it insists on downloading everytime, before it'll even attempt to do anything.)


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?

Replies are listed 'Best First'.
Re^2: How to install pp, Wx module in 64 bit windows7 system
by bulk88 (Priest) on Jul 14, 2012 at 17:19 UTC
    Error pop up window says: Unsupported 16-bit Application : The program or feature "Nmake.exe" cannot start or run due to incompatibility with 64-bit versions of windows.

    That's as a result of CPAN (still!) stupidly insisting on installing an ancient and broken version of nmake that hasn't been usable to build perl for a decade or more:Fetching 'Nmake15.exe' from download.microsoft.com...

    Unbelievable. Why not download a copy of dmake? I think the last time I tried, dmake can run a nmake syntax makefile since nmake is a very small subset of dmake's syntax.
      Why not download a copy of dmake?

      Personally, I think that would just muddy the waters. Whilst it would work for installing pure Perl modules, it would fall over again as soon as it requires a compiler. Better to simply not install anything, but rather point them at some url that will explain what is needed.

      The worst part of it is that it still does it even when you have a good version of nmake installed, because it insists of looking for it in some specific directory (/usr/bin or somewhere equally arbitrary and ridiculous). If it simple tried to invoke it and let the path find it, it would avoid breaking good installs.

      Of course, there is simply no point at all in downloading that ancient 16-bit tool that doesn't run under anything since 95/98/me, so I suppose dmake might get people started. You'd probably have to rename it to be nmake.exe though?


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

      The start of some sanity?

      I think the last time I tried, dmake can run a nmake syntax makefile

      That doesn't work for me - in relation to building perl modules, at least. I get the error:
      dmake: Error: -- `c:\_32\perl_vc7\5.10.0\libConfig.pm' not found, and + can't be made
      ExtUtils/MM_Win32.pm caters for this difference with:
      sub init_DIRFILESEP { my($self) = shift; # The ^ makes sure its not interpreted as an escape in nmake $self->{DIRFILESEP} = $self->is_make_type('nmake') ? '^\\' : $self->is_make_type('dmake') ? '\\\\' : '\\'; }
      Cheers,
      Rob
        I often do a dmake clean by accident on a nmake makefile. It works without any fatal errors. I've never tried a dmake install on a nmake makefile.