Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Missing nmake - 64bit, Windows 7

by syphilis (Archbishop)
on Mar 02, 2011 at 07:04 UTC ( [id://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).

Cheers,
Rob

Replies are listed 'Best First'.
Re^2: Missing nmake - 64bit, Windows 7
by ikegami (Patriarch) 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.

      Cheers,
      Rob

      In $active_perl\site\lib\Config_m.pm, change

      libperl='libperl510.a'

      to

      libperl='libperl512.a'

      Then, it works with -MConfig_m.

      Note: Config_m.pm 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'.

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

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (4)
As of 2024-04-19 04:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found