There is the build rule (below) which was used to compile x64 assembly with Visual Studio 2005. It works well but the issue is appearing on Windows8 machine. And compiler fires the next error:
1>Assembling x64...
1>Project : error PRJ0003 : Error spawning 'cmd.exe'.
while 32bin assembly builds successfully. Any ideas how to fix it?
The rule is located in "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCProjectDefaults" directory and ml64.exe in "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\amd64" and "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\x86_amd64".
< ?xml version="1.0" encoding="utf-8"?>
< VisualStudioToolFile Name="Microsoft Macro Assembler x64" Version="8.00"><Properties> <BooleanProperty Name="NoLogo" DisplayName="Suppress Startup Banner" Description="Suppress the display of the startup banner and information messages. (/nologo)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/nologo" DefaultValue="true" /> <BooleanProperty Name="TinyMemoryModelSupport" DisplayName="Tiny Memory Model Support" PropertyPageName="Advanced" Description="Enables tiny-memory-model support. Note that this is not equivalent to the .MODEL TINY directive. (/AT)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/AT" /> <StringProperty Name="ObjectFileName" DisplayName="Object File Name" PropertyPageName="Object File" Description="Specifies the name of the output object file. (/Fo:[file])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Fo"[value]"" DefaultValue="$(IntDir)\$(InputName).obj" /> <EnumProperty Name="PreserveIdentifierCase" DisplayName="Preserve Identifier Case" Description="Specifies preservation of case of user identifiers. (/Cp, /Cu, /Cx)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" DefaultValue="0" <Values> <EnumValue Value="0" DisplayName="Default" /> <EnumValue Value="1" Switch="/Cp" DisplayName="Preserves Identifier Case (/Cp)" /> <EnumValue Value="2" Switch="/Cu" DisplayName="Maps all identifiers to upper case. (/Cu)" /> <EnumValue Value="3" Switch="/Cx" DisplayName="Preserves case in public and extern symbols. (/Cx)" /> </Values> </EnumProperty> <StringProperty Name="PreprocessorDefinitions" DisplayName="Preprocessor Definitions" Description="Defines a text macro with the given name. (/D[symbol])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/D"[value]"" Delimited="true" Inheritable="true" /> <BooleanProperty Name="GeneratePreprocessedSourceListing" DisplayName="Generate Preprocessed Source Listing" PropertyPageName="Listing File" Description="Generates a preprocessed source listing to the Output Window. (/EP)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/EP" /> <StringProperty Name="AssembledCodeListingFile" DisplayName="Assembled Code Listing File" PropertyPageName="Listing File" Description="Generates an assembled code listing file. (/Fl[file])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Fl"[value]"" /> <StringProperty Name="SourceListingLineWidth" DisplayName="Source Listing Line Width" PropertyPageName="Listing File" Description="Sets the line width of source listing in characters per line. Range is 60 to 255. Same as PAGE width. (/Sl [width])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Sl [value]" /> <StringProperty Name="SourceListingPageLength" DisplayName="Source Listing Page Length" PropertyPageName="Listing File" Description="Sets the page length of source listing in lines per page. Range is 10 to 255. Same as PAGE length. (/Sp [length])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Sp [value]" /> <StringProperty Name="IncludePaths" DisplayName="Include Paths" Description="Sets path for include file. A maximum of 10 /I options is allowed. (/I [path])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/I "[value]"" Delimited="true" Inheritable="true" /> <BooleanProperty Name="ListAllAvailableInformation" DisplayName="List All Available Information" PropertyPageName="Listing File" Description="Turns on listing of all available information. (/Sa)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Sa" /> <BooleanProperty Name="UseSafeExceptionHandlers" DisplayName="Use Safe Exception Handlers" PropertyPageName="Advanced" Description="Marks the object as either containing no exception handlers or containing exception handlers that are all declared with .SAFESEH. (/safeseh)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/safeseh" /> <BooleanProperty Name="AddFirstPassListing" DisplayName="Add First Pass Listing" PropertyPageName="Listing File" Description="Adds first-pass listing to listing file. (/Sf)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Sf" /> <BooleanProperty Name="EnableAssemblyGeneratedCodeListing" DisplayName="Enable Assembly Generated Code Listing" PropertyPageName="Listing File" Description="Turns on listing of assembly-generated code. (/Sg)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Sg" /> <BooleanProperty Name="DisableSymbolTable" DisplayName="Disable Symbol Table" PropertyPageName="Listing File" Description="Turns off symbol table when producing a listing. (/Sn)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Sn" /> <StringProperty Name="SourceListingSubTitle" DisplayName="Source Listing Subtitle" PropertyPageName="Listing File" Description="Specifies subtitle text for source listing. Same as SUBTITLE text. (/Ss [subtitle])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Ss [value]" /> <StringProperty Name="SourceListingTitle" DisplayName="Source Listing Title" PropertyPageName="Listing File" Description="Specifies title for source listing. Same as TITLE text. (/St [title])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/St [value]" /> <BooleanProperty Name="EnableFalseConditionalsInListing" DisplayName="Enable False Conditionals In Listing" PropertyPageName="Listing File" Description="Turns on false conditionals in listing. (/Sx)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Sx" /> <EnumProperty Name="WarningLevel" DisplayName="Warning Level" Description="Sets the warning level, where level = 0, 1, 2, or 3. (/W0, /W1, /W2, /W3)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" DefaultValue="3" <Values> <EnumValue Value="0" Switch="/W0" DisplayName="Warning Level 0 (/W0)" /> <EnumValue Value="1" Switch="/W1" DisplayName="Warning Level 1 (/W1)" /> <EnumValue Value="2" Switch="/W2" DisplayName="Warning Level 2 (/W2)" /> <EnumValue Value="3" Switch="/W3" DisplayName="Warning Level 3 (/W3)" /> </Values> </EnumProperty> <BooleanProperty Name="TreatWarningsAsErrors" DisplayName="Treat Warnings As Errors" Description="Returns an error code if warnings are generated. (/WX)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/WX" /> <BooleanProperty Name="MakeAllSymbolsPublic" DisplayName="Make All Symbols Public" PropertyPageName="Object File" Description="Makes all symbols public. (/Zf)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Zf" /> <BooleanProperty Name="GenerateDebugInformation" DisplayName="Generate Debug Information" Description="Generates Debug Information. (/Zi)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Zi" DefaultValue="true" /> <BooleanProperty Name="EnableMASM51Compatibility" DisplayName="Enable MASM 5.1 Compatibility" Description="Enables M510 option for maximum compatibility with MASM 5.1. (/Zm)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Zm" /> <EnumProperty Name="PackAlignmentBoundary" DisplayName="Pack Alignment Boundary" PropertyPageName="Advanced" Description="Packs structures on the specified byte boundary. The alignment can be 1, 2, 4, 8 or 16. (/Zp1, /Zp2, /Zp4, /Zp8, /Zp16)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" <Values> <EnumValue Value="0" DisplayName="Default" /> <EnumValue Value="1" Switch="/Zp1" DisplayName="One Byte Boundary (/Zp1)" /> <EnumValue Value="2" Switch="/Zp2" DisplayName="Two Byte Boundary (/Zp2)" /> <EnumValue Value="3" Switch="/Zp4" DisplayName="Four Byte Boundary (/Zp4)" /> <EnumValue Value="4" Switch="/Zp8" DisplayName="Eight Byte Boundary (/Zp8)" /> <EnumValue Value="5" Switch="/Zp16" DisplayName="Sixteen Byte Boundary (/Zp16)" /> </Values> </EnumProperty> <BooleanProperty Name="PerformSyntaxCheckOnly" DisplayName="Perform Syntax Check Only" Description="Performs a syntax check only. (/Zs)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/Zs" /> <EnumProperty Name="CallingConvention" DisplayName="Calling Convention" PropertyPageName="Advanced" Description="Selects calling convention for your application. (/Gc, /Gd. /Gz)" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" <Values> <EnumValue Value="0" DisplayName="Default" /> <EnumValue Value="1" Switch="/Gd" DisplayName="Use C-style Calling Convention (/Gd)" /> <EnumValue Value="2" Switch="/Gz" DisplayName="Use stdcall Calling Convention (/Gz)" /> <EnumValue Value="3" Switch="/Gc" DisplayName="Use Pascal Calling Convention (/Gc)" /> </Values> </EnumProperty> <EnumProperty Name="ErrorReporting" DisplayName="Error Reporting" PropertyPageName="Advanced" Description="Reports internal assembler errors to Microsoft. (/errorReport:[method])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" <Values> <EnumValue Value="0" Switch="/errorReport:prompt" DisplayName="Prompt to send report immediately (/errorReport:prompt)" /> <EnumValue Value="1" Switch="/errorReport:queue" DisplayName="Prompt to send report at the next logon (/errorReport:queue)" /> <EnumValue Value="2" Switch="/errorReport:send" DisplayName="Automatically send report (/errorReport:send)" /> <EnumValue Value="3" Switch="/errorReport:none" DisplayName="Do not send report (/errorReport:none)" /> </Values> </EnumProperty> <StringProperty Name="BrowseFile" DisplayName="Generate Browse Information File" PropertyPageName="Advanced" Description="Specifies whether to generate browse information file and its optional name or location of the browse information file. (/FR[name])" HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp" Switch="/FR"[value]"" Delimited="true" Inheritable="true" /> </Properties> </CustomBuildRule> </Rules>