ikegami has asked for the wisdom of the Perl Monks concerning the following question:

Visual C++ 2010 Express doesn't come with a 64bit compiler, and none seem available. Is there one for Visual C++ 2008 Express? I can't seem to find reliable info.

I'd rather continue building modules for ActivePerl using MS's compiler.


Update: Summary of steps to use VC++ 2010 Express to compile modules for ActivePerl.

Replies are listed 'Best First'.
Re: 64bit compiler from MS
by syphilis (Archbishop) on Mar 04, 2011 at 06:53 UTC
    The actual compiler that ActiveState uses to build their 64-bit perls is the Microsoft Platform SDK for Windows Server 2003 R2 and it's still freely available.

    Not sure if that's the best link to getting it, and be careful that the download links don't in fact point to the updated (2008 ?) edition instead, though it's not the end of the world if you end up with the updated version.
    That's the only MS Compiler I use with 64-bit ActivePerl, though I think there *are* 64-bit versions of Visual Studio freely available.

    (I generally use mingw64 with 64-bit ActivePerl ... to each his own ;-)

    Cheers,
    Rob

    Update: Not so sure now that it *is* still freely available. On that webpage I see "This SDK is available as a low-cost CD". I think that wasn't there before - instead there was a "Continue" button that allowed one to proceed with the 2003 download.
      There doesn't seem to be any issue with installing multiple compilers and SDK, so I'll give it a whirl. Thanks!
Re: 64bit compiler from MS
by ikegami (Patriarch) on Mar 04, 2011 at 07:11 UTC

    Aha!

    I had installed the Windows SDK that was suppose to include it. I thought it didn't work.

    It did work, it's just that it doesn't integrate into VC's vcvarsall as one would guess from the contents of that file. Instead, one uses

    C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv

    (Can be run via "Windows SDK 7.1 Command Prompt" in the Start menu.)

    Who would have thought that the release notes would be useful?! What a foreign concept.

    The next problem is that I'm getting

    LINK : fatal error LNK1181: cannot open input file 'bufferoverflowU.li +b'

      Seems bufferoverflowU doesn't exist anymore since it's included in the compiler. So I just removed both mentions of "bufferoverflowU.lib" from Config_heavy.pl.

      The only outstanding issue is the awful color to which SetEnv switches the console in order to indicate it's a compiler-ready shell.



      With the Platform SDK, I run:
      C:\_64\Platform_SDK\SetEnv.cmd /XP64 /RETAIL
      I forget what, if anything, is achieved by those switches ... and I also don't know if that applies in any way to your Windows SDK.

      (I see you've fixed the bufferoverflowu.lib issue in the approved manner :-)

      Cheers,
      Rob

        With the Platform SDK, I run [...] /XP64 /RETAIL

        I think you mean /xp /x64 /retail

        It defaults to /win7 /x64 /debug (for me). /win7 should be fine since it's for local use only, but, but /retail is a good idea.

        (All options are listed by setenv /? from the aforementioned console.)

        (I see you've fixed the bufferoverflowu.lib issue in the approved manner :-)

        I hesitated, but creating a module that uses ExtUtils::FakeConfig to filter out the value felt like overkill :)

Re: 64bit compiler from MS
by Gulliver (Monk) on Mar 04, 2011 at 22:40 UTC

    I wonder if you need to install the whole 1+ Gb? I have some 64bit machines behind a firewall and I don't want to transfer that much through ftp. Would be nice if I could just copy the compilier directories