Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Missing nmake - 64bit, Windows 7

by syphilis (Chancellor)
on Mar 02, 2011 at 07:04 UTC ( #890918=note: print w/ replies, xml ) Need Help??

in reply to Missing nmake - 64bit, Windows 7

I assume it's a 64-bit build of ActivePerl that you're using - one where perl -V:ivsize reports 8. (Note that 32-bit builds of perl, where the ivsize is 4, will also run quite well on 64-bit Windows.)

If my assumption is correct, then one option is:
a) Install dmake from CPAN, and add the location of dmake.exe to your path;
b) Download this mingw port of the gcc compiler, unzip it and add the bin folder to your path;
c) Install ExtUtils::FakeConfig from CPAN (using your usual procedure for building and installing modules);
d) set the PERL5OPT environment variable to -MConfig_m

You should then be right to go with building modules for your x64 ActivePerl, using dmake and MinGW, by simply going about the task in the usual way - either by running cpan -i ... or by running perl Makefile.PL, etc.

Update: One can, of course, adopt the same approach with 32-bit builds of ActivePerl and MinGW - but ActiveState's seamless integration of MinGW for the 32-bit perls is so good that it makes the use of EU::FC unnecessary (imo).


Comment on Re: Missing nmake - 64bit, Windows 7
Select or Download Code
Replies are listed 'Best First'.
Re^2: Missing nmake - 64bit, Windows 7
by ikegami (Pope) on Mar 04, 2011 at 05:31 UTC

    Without -MConfig_m:

    C:\Progs\mingw64\bin\g++.exe -o blib\arch\auto\DBD\SQLite\SQLite.dll - +Wl,--base-file -Wl,dll.base -mdll -L"C:\Progs\perl5121-ap1201\lib\COR +E" SQLite.o dbdimp.o sqlite3.o -Wl,--image-base,0x27340000 C +:\Progs\perl5121-ap1201\lib\CORE\perl512.lib -lkernel32 -luser32 -lgd +i32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -ln +etapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 - +lcomctl32 -lbufferoverflowU -lmsvcrt dll.exp c:/progs/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.4.5/../../../../x +86_64-w64-mingw32/bin/ld.exe: cannot find -lbufferoverflowU

    With -MConfig_m, it doesn't even get that far:

    C:\Progs\perl5121-ap1201\bin\perl.exe -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"DBD::SQLite\", 'DLBASE' => 'SQLite', 'DL +_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => [] +);" dmake: Error: -- `C:\Progs\perl5121-ap1201\lib\CORE\libperl510.a' not + found, and can't be made

    5.10? This is 5.12!

      5.10? This is 5.12!

      The module probably hasn't been updated since the release of 5.12 - certainly there's no spec/ap_mingw_512.txt present in the distro.

      I'd like to send the author some patches to get this module up to date ... it's just a matter of finding the time.


      In $active_perl\site\lib\, change




      Then, it works with -MConfig_m.

      Note: will be write-protected, so you'll have to change its attributes to edit it.

Re^2: Missing nmake - 64bit, Windows 7
by heliozoan (Initiate) on Mar 03, 2011 at 14:25 UTC
    Hi Rob, Yes, it's a 64-bit build of ActivePerl. I will try your suggestions. Cheers!
      Yes, it's a 64-bit build of ActivePerl

      If the version of perl is later than 5.10, then there might be some (hopefully simple) hacking needed .... I'm not sure yet.
      If you strike trouble, please feel free to follow it up here.

      With 64-bit builds of ActivePerl, some of the other suggestions mentioned earlier in this thread won't work - eg you won't be able to 'ppm install MinGW'.

Re^2: Missing nmake - 64bit, Windows 7
by ikegami (Pope) on Mar 22, 2011 at 17:12 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://890918]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2015-11-26 01:23 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (695 votes), past polls