• vs2017 自定义生成规则 错误 MSB3721 命令 ”已退出,返回代码为 1。


    错误 MSB3721 命令 ”已退出,返回代码为 1。

    解决办法:去掉yasm复选框,改为masm

     

     

    vs2017 自定义生成规则-编译汇编代码

     

    VC++调用yasm编译汇编代码有三种方法:Custom Build、.rules文件、.targets文件。

    1 Custom Build

    Custom Build的优点是适用面广,vc6~vc2015都能使用;缺点是修改命令行参数稍显麻烦。

     

     

    图1.19

    Outputs是编译*.asm后的输出文件,连接时会用到此文件。上图的设置为"(IntDir)$(InputName).obj"其中(IntDir)$(InputName).obj"其中(IntDir)是编译时的临时目录,(InputName)是编译.asm文件名,如:编译addn.asm时,(InputName)是编译.asm文件名,如:编译addn.asm时,(InputName)就是add_n。

    Commands是vsyasm.exe的命令行,具体如下:

    1.12.2 .rules文件

    鼠标右键单击项目,弹出菜单中单击【Custom Build Rules...】菜单项

     

    图1.20

    弹出如下界面,请单击"Find Existing..."按钮。

     

    图1.21

    请载入 yasm.rules文件,如所示:

    "D:dev2v0WebForDotNet-v0.3-SourceExternalsvpx-vp8-debug-src-x86-win32mt-vs8-v0.9.2srcuildx86-msvsyasm.rules"

     

    下图所示界面,请单击"否"按钮。

     

    图1.23

    下图所示界面内,请勾选"Yasm",然后单击"OK"按钮。

     

    图1.24

    此时查看项目属性,可以看到配置里多了一项"Yasm Assembler",可以在这里对Yasm的命令行参数进行配置。如下图所示:

     

     

     

    Definitions 定义

    Include paths  包含路径

    Remove Definitions 删除定义

    Object file Name  目标文件名

    List file name 列表文件名

    Pre include file 预包含文件

    Pre-Processor 预处理器

    Parser 分析器

    Execute before 执行之前

    Execute after 执行后

    Additional Dependencies 附加依赖项

    YASMPATH  D:Programvsyasm-1.3.0-win64

     

    错误 MSB3721 命令 ”已退出,返回代码为 1。

    解决办法:去掉yasm复选框,改为masm

     

     

    图1.26

    1.12.3 .targets文件

     

    yasm -Xvc -f Win32 -g cv8 -I -o Win32Debugvpx\%(Filename).obj -rnasm -pnasm 

     

    -Xvc 是错误信息显示格式。对于gcc编译器可设置为 -Xgcc 或 -Xgnu。

    -f Win32 表明是32位平台,对于64位平台可指定为-f x64

    -g cv8 用来生成调试信息,这种调试信息不能被 vc6 识别,所以使用vc6编译.asm文件时,请去除该选项。

    -o "(IntDir)"表示将在目录(IntDir)"表示将在目录(IntDir)里生成.obj文件。注意$(IntDir)后面的两个反斜杠一个都不能少。

    $(InputPath)表示输入文件,如:add_n.asm、addmul_1.asm……

     

     

     

    规则文件(即 RULES 文件)是文件扩展名为 .rules 的 XML 文件。通过该文件,可以定义自定义生成规则,并将其并入 Visual C++ 项目的生成过程中。自定义生成规则与一个或多个文件扩展名相关联。利用自定义生成规则,可以将输入文件传递给工具,进而作为生成过程的一部分生成一个或多个输出文件。

    使用“Visual C++ 自定义生成规则文件”对话框可以管理项目中的规则文件。

    说明:

    规则文件遵循与属性表(VSPROPS 文件)相同的属性继承准则。有关更多信息,请参见属性继承

    将自定义生成规则并入生成过程中时,还可以指定运行这些生成规则的顺序。有关更多信息,请参见“工具生成顺序”对话框

    “Visual C++ 自定义生成规则文件对话框

    通过此对话框,可以添加、修改或搜索规则文件,这些文件包含 C++ 项目的自定义生成规则。

    若要访问此对话框,请在“解决方案资源管理器”中右击项目节点以调出项目上下文菜单,然后选择“自定义生成规则”菜单项。

    可用的规则文件

    显示可用的规则文件的列表。在“名称”列中,选中要添加到项目中的规则文件。

    说明:

    使用“选项”对话框 ->“项目和解决方案”->“VC++ 项目设置”修改“规则文件搜索路径”选项。

    在 Visual Studio 旗舰版, Visual Studio 高级专业版 以及 Visual Studio Professional 中,您可以创建和修改自定义规则集 ,以满足与代码分析相关联的特定项目需要。 若要创建自定义规则集,请在规则集编辑器中打开一个或多个标准规则集。 然后,可以添加或移除特定规则,并且可以更改当代码分析确定违反规则时发生的操作。

    若要创建新的自定义规则集,请使用新文件名保存它。 自定义规则集会自动分配给项目。

    打开规则集编辑器

     

     

     

    在规则集编辑器中打开空规则集文件

    1. 在 Visual Studio 的“文件”菜单上,指向“新建”,然后单击“文件”。
    2. 在“新建文件”对话框中,单击“已安装的模板”列表中的“常规”,然后选择“代码分析规则集”。
    3. 随即将显示规则集编辑器。 编辑器列表中没有已选中的规则。

    从单个现有规则集创建自定义规则

    1. 在解决方案资源管理器中,右击项目,然后选择“属性”。
    2. 在“属性”选项卡中,单击“代码分析”。
    3. 在“规则集”下拉列表中,执行以下操作之一:
    • 选择要自定义的规则集。

    - 或 -

    • 选择 <浏览> 指定列表外部的现有规则集。
    1. 单击“打开”以在规则集编辑器中显示规则。

    从多个现有规则集创建自定义规则集

    1. 在解决方案资源管理器中,右击项目,然后选择“属性”。
    2. 在“属性”选项卡中,单击“代码分析”。
    3. 从 运行此规则集 中 <选择多个规则集>.
    4. 在“添加或移除规则集”对话框中,选择要作为新规则集基础的规则集,然后单击“确定”。
    5. 保存新规则集。

    新规则集的名称在“运行此规则集”列表中处于选中状态。 在下一步中可以更改规则集的显示名称。

    1. (可选)若要更改规则集的显示名称,请在“视图”菜单上单击“属性窗口”。 在“名称”框中键入显示名称。
    2. 若要在新规则集中添加、移除或修改特定代码分析规则,请单击“打开”。

    修改规则集

     

     

     

    在规则集编辑器中修改规则集

    • 若要更改规则集的显示名称,请在“视图”菜单上单击“属性窗口”。 在“名称”框中输入显示名称。 请注意,显示名称可以与文件名不同。
    • 若要将组的所有规则添加到自定义规则集,请选中组的复选框。 若要移除组的所有规则,请清除该复选框。
    • 若要将特定规则添加到自定义规则集,请选中该规则的复选框。 若要从规则集内移除规则,请清除该复选框。
    • 若要更改在代码分析运行中违反规则时应采取的操作,请单击规则的“操作”字段,然后选择下列值之一:

    Warn - 生成警告。

    Error - 生成错误。

    None - 禁用规则。 此操作相当于从规则集内移除规则。

    更改规则集编辑器的显示

     

     

    请参阅

     

     

     

    如何:配置托管代码项目的代码分析
    代码分析规则集参考

     

  • 相关阅读:
    C#规范整理·异常与自定义异常
    C#规范整理·资源管理和序列化
    C#规范整理·泛型委托事件
    C#规范整理·集合和Linq
    <抽象工厂>比<工厂方法>多了啥(区别)
    <工厂方法>比<简单工厂>多了啥(区别)
    Unable to start Ocelot because either a ReRoute or GlobalConfiguration
    MySQL服务安装
    mysql登录报错“Access denied for user 'root'@'localhost' (using password: YES”)的处理方法
    使用博客系统发生_STORAGE_WRITE_ERROR_错误
  • 原文地址:https://www.cnblogs.com/endv/p/7030232.html
Copyright © 2020-2023  润新知