in reply to How to Compile v10 in Vista 64b ?

4. Well just to try it, did nmake test then nmake install? (in a VS command prompt)and the compiler starts, runs a bit in each case then errors out.

What are the errors?


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.
"I'd rather go naked than blow up my ass"

Replies are listed 'Best First'.
Re^2: How to Compile v10 in Vista 64b ?
by iBradleyAllen (Novice) on Mar 26, 2010 at 18:43 UTC

    C:\Users\B\Downloads\latest.tar\latest\perl-5.10.1\win32>"c:\Program Files (x 86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat" Setting environment for using Microsoft Visual Studio 2008 x86 tools.

    C:\Users\B\Downloads\latest.tar\latest\perl-5.10.1\win32>nmake install

    Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. link -subsystem:console -out:..\generate_uudmap.exe @C:\Users\ +B\AppDa ta\Local\Temp\nmBA36.tmp LINK : fatal error LNK1181: cannot open input file 'bufferoverflowU.li +b' NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual S +tudio 9.0\ VC\BIN\link.EXE"' : return code '0x49d' Stop.

    C:\Users\B\Downloads\latest.tar\latest\perl-5.10.1\win32>nmake test

    Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. link -subsystem:console -out:..\generate_uudmap.exe @C:\Users\ +B\AppDa ta\Local\Temp\nmC9A1.tmp LINK : fatal error LNK1181: cannot open input file 'bufferoverflowU.li +b' NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual S +tudio 9.0\ VC\BIN\link.EXE"' : return code '0x49d' Stop.

    C:\Users\B\Downloads\latest.tar\latest\perl-5.10.1\win32>nmake makefile

    Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved.

    'makefile' is up-to-date

    C:\Users\B\Downloads\latest.tar\latest\perl-5.10.1\win32>

      Looks like you have a missing library called "bufferoverflowU". This node has some relevant details and potential solutions.
        AHA! i had not seen your reply there until after posting one just below it, thanks! will try this now...

      Just comment out the last 3 lines below in the makefile. This was required for earlier versions if the compiler, but not for VC++ v9:

      # The 64 bit Platform SDK compilers contain a runtime library that doe +sn't # include the buffer overrun verification code used by the /GS switch. # Since the code links against libraries that are compiled with /GS, t +his # "security cookie verification" must be included via bufferoverlow.li +b. !IF "$(WIN64)" == "define" LIBBASEFILES = $(LIBBASEFILES) bufferoverflowU.lib !ENDIF

      A real fix would be to make it conditional upon both platform (64-bit) and compiler CCTYPE.


      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.
        Ok, this gets to the next step, I had also got around this by switching to VC8.0 which had the bufferoverflowU.lib in the Amd64 folder... putting the different build path batch file and re running, so it shows up now as v8, behold:

        C:\Users\B\Downloads\latest.tar\latest\perl-5.10.1\win32>nmake install
        Microsoft (R) Program Maintenance Utility Version 8.00.50727.42 Copyright (C) Microsoft Corporation. All rights reserved. link -subsystem:console -out:..\generate_uudmap.exe @C:\Users\ +B\AppDa ta\Local\Temp\nm4490.tmp LINK : fatal error LNK1104: cannot open file 'PerlCRT.lib' NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual S +tudio 8\VC \BIN\amd64\link.EXE"' : return code '0x450' Stop.

        Ive been trying to look for settings in the makefile.mk that cause this, at first glance it looks like somewhere maybe some part of "if $(USE_PERLCRT) != define " logic is backwards, maybe its me.

        I thought the define for perlcrt.lib is turned OFF, yet it still shows up as cannot find that file.

      This is what the makefile.mk has in regards to the error

      # The 64 bit Platform SDK compilers contain a runtime library that doesn't
      # include the buffer overrun verification code used by the /GS switch.
      # Since the code links against libraries that are compiled with /GS, this
      # "security cookie verification" must be included via bufferoverlow.lib. .IF "$(WIN64)" == "define" LIBBASEFILES = $(LIBBASEFILES) bufferoverflowU.lib .ENDIF



      There was no bufferoverflowU.lib found in the download, will look to download the 64b SDK? "

Re^2: How to Compile v10 in Vista 64b ?
by Poincare (Initiate) on Mar 28, 2010 at 23:34 UTC

    Why not just strawberry perl?

      Why not just strawberry perl?

      Why not just what Strawberry Perl? Scrap it? Abandon it? Consign it to the bit bucket? :) I guess you mean, why not use Strawberry Perl.

      So, let me turn the question around. Why use Strawberry Perl? How would it address the OPs problem?


      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.