in reply to Re^7: Installing Perl modules on Win64/Perl 5.8
in thread Installing Perl modules on Win64/Perl 5.8

Is this all that is needed to get up and running with building Perl modules?

Should be all that's needed. You might want to take a look at what changes the running of that command makes to the path.

I installed the compiler into C:\_64\Platform_SDK. I therefore have to run:
C:\_64\Platform_SDK\SetEnv.cmd /XP64 /RETAIL
If you've installed into a directory that contains spaces you may need to double-quote the path:
"C:\path with spaces\SetEnv.cmd" /XP64 /RETAIL
That prepends the following 3 directories to my path:
C:\_64\Platform_SDK\Bin\Win64\x86\AMD64 C:\_64\Platform_SDK\Bin C:\_64\Platform_SDK\Bin\WinNT
It's the first of those directories that houses the compiler (cl.exe). If it's the same for you, and the Makefile.PL can't find the compiler, then one suspects a Makefile.PL bug. Which module (and version number of that module) is it that produces this error ?

Math-FFT-1.28 is a nice, easy extension to build just to check that everything is as it should be. Here's what I get for it:
C:\_64\comp\Math-FFT-1.28>perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Math::FFT C:\_64\comp\Math-FFT-1.28>nmake test Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. cp FFT.pm blib\lib\Math\FFT.pm C:\_64\perl1007\bin\perl.exe C:\_64\perl1007\lib\ExtUtils\xsub +pp -typem ap C:\_64\perl1007\lib\ExtUtils\typemap -typemap typemap FFT.xs > FFT +.xsc && C: \_64\perl1007\bin\perl.exe -MExtUtils::Command -e "mv" -- FFT.xsc FFT. +c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -Wp64 -fp:pr +ecise -DWI N32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -D +USE_SITECU STOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_ +SYS -DUSE_ PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -Ox -GL -Wp64 -fp:precis +e -DVER SION=\"1.28\" -DXS_VERSION=\"1.28\" "-IC:\_64\perl1007\lib\CORE" F +FT.c FFT.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -Wp64 -fp:pr +ecise -DWI N32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -D +USE_SITECU STOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_ +SYS -DUSE_ PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -Ox -GL -Wp64 -fp:precis +e -DVER SION=\"1.28\" -DXS_VERSION=\"1.28\" "-IC:\_64\perl1007\lib\CORE" f +ft4g.c fft4g.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -Wp64 -fp:pr +ecise -DWI N32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -D +USE_SITECU STOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_ +SYS -DUSE_ PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -Ox -GL -Wp64 -fp:precis +e -DVER SION=\"1.28\" -DXS_VERSION=\"1.28\" "-IC:\_64\perl1007\lib\CORE" a +rrays.c arrays.c Running Mkbootstrap for Math::FFT () C:\_64\perl1007\bin\perl.exe -MExtUtils::Command -e "chmod" -- + 644 FFT.b s C:\_64\perl1007\bin\perl.exe -MExtUtils::Mksymlists -e "Mksym +lists('NAM E'=>\"Math::FFT\", 'DLBASE' => 'FFT', 'DL_FUNCS' => { }, 'FUNCLIST' = +> [], 'IMP ORTS' => { }, 'DL_VARS' => []);" link -out:blib\arch\auto\Math\FFT\FFT.dll -dll -nologo -nodefa +ultlib -de bug -opt:ref,icf -ltcg -libpath:"C:\_64\perl1007\lib\CORE" -machine: +AMD64 FFT. obj fft4g.obj arrays.obj C:\_64\perl1007\lib\CORE\perl510.lib oldnam +es.lib ker nel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib + shell32.l ib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib wi +nmm.lib v ersion.lib odbc32.lib odbccp32.lib comctl32.lib bufferoverflowU.lib ms +vcrt.lib - def:FFT.def Creating library blib\arch\auto\Math\FFT\FFT.lib and object blib\ar +ch\auto\Ma th\FFT\FFT.exp Generating code c:\_64\comp\math-fft-1.28\arrays.c(363) : warning C4715: 'pack2D' : no +t all cont rol paths return a value c:\_64\comp\math-fft-1.28\arrays.c(200) : warning C4715: 'pack1D' : no +t all cont rol paths return a value Finished generating code if exist blib\arch\auto\Math\FFT\FFT.dll.manifest mt -nologo - +manifest b lib\arch\auto\Math\FFT\FFT.dll.manifest -outputresource:blib\arch\auto +\Math\FFT\ FFT.dll;2 if exist blib\arch\auto\Math\FFT\FFT.dll.manifest del blib\arc +h\auto\Mat h\FFT\FFT.dll.manifest C:\_64\perl1007\bin\perl.exe -MExtUtils::Command -e "chmod" -- + 755 blib\ arch\auto\Math\FFT\FFT.dll C:\_64\perl1007\bin\perl.exe -MExtUtils::Command -e "cp" -- FF +T.bs blib\ arch\auto\Math\FFT\FFT.bs C:\_64\perl1007\bin\perl.exe -MExtUtils::Command -e "chmod" -- + 644 blib\ arch\auto\Math\FFT\FFT.bs C:\_64\perl1007\bin\perl.exe "-MExtUtils::Command::MM" "-e" "t +est_harnes s(0, 'blib\lib', 'blib\arch')" t/*.t t/apps.t ... ok t/fft.t .... ok t/stats.t .. ok All tests successful. Files=3, Tests=48, 2 wallclock secs ( 0.14 usr + 0.11 sys = 0.25 CP +U) Result: PASS
Cheers,
Rob

Replies are listed 'Best First'.
Re^9: Installing Perl modules on Win64/Perl 5.8
by lintunen (Novice) on Mar 30, 2010 at 07:00 UTC
    I am assuming that the setenv command has executed correctly because I get the output "Targeting Windows XP X64 RETAIL" but there's a catch: The path is not getting updated. I don't know if it is enough to update it manually but this didn't seem to help.
      Targeting Windows XP X64 RETAIL

      That looks right. It comes from this section of setenv.cmd:
      Echo Targeting Windows XP X64 %DEBUGMSG% Echo. Set Lib=%MSSdk%\Lib\AMD64;%MSSdk%\Lib\AMD64\atlmfc; Set Include=%MSSdk%\Include;%MSSdk%\Include\crt;%MSSdk%\Include\crt\sy +s;%MSSdk%\Include\mfc;%MSSdk%\Include\atl Set Path=%MSSdk%\Bin\Win64\x86\AMD64;%MSSdk%\Bin;%MSSdk%\Bin\WinNT;%pa +th% Set APPVER=5.02 Set TARGETOS=WINNT Title Microsoft Platform SDK XP X64-bit IE 6.0 %DEBUGMSG% Build Enviro +nment Goto Finish
      As you can see, there's more to it than setting just the path - it also sets the Lib and Include environment variables appropriately.
      What does the corresponding section of your setenv.cmd contain ?
      Is %MSSdk% being set correctly ? It should be the location you installed to. (For me it's C:\_64\Platform_SDK) Just put an "Echo" in front of the "Set Lib ..." command, and you'll see what %MSSdk% is set to when you run setenv.cmd. What does it produce ? Does it match an existing directory ?
      Could you put a copy of your setenv.cmd on your scratchpad - or even post it here ?
      As it stands, we've really very little to work with.

      Cheers,
      Rob
        OK so I have updated this post because it seems I am on the road to successfully building a test module.