有用于使用 Visual Studio 2005 编译 x64 程序集的构建规则(如下)。它运行良好,但问题出现在 Windows8 机器上。编译器触发下一个错误:
1>Assembling x64...
1>Project : error PRJ0003 : Error spawning 'cmd.exe'.
而 32bin 程序集构建成功。任何想法如何解决它?
该规则位于“C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCProjectDefaults”目录中,ml64.exe 位于“C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\amd64 ”和“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>