【问题标题】:How to get /MP option of VC projects using EnvDTE?如何使用 EnvDTE 获得 VC 项目的 /MP 选项?
【发布时间】:2018-10-14 01:34:24
【问题描述】:

我正在开发 Visual Studio 插件来修改 VC 项目,并且我想获取/设置 /MP 选项(多处理器编译选项)。 但我似乎无法找到改变它的属性。 /MP 的属性在哪里?

【问题讨论】:

  • 我已经搜索过了,但我认为微软没有添加该属性。它应该在 VCPlatform 或 VCCLCompilerTool 中

标签: visual-studio visual-c++ vsix envdte


【解决方案1】:

我可以通过下面的代码获得 MP 选项。

p.GetEvaluatedPropertyValue("MultiProcessorCompilation");

【讨论】:

    【解决方案2】:

    对于 VC++ 项目,您应该通过 C/C++|代码生成属性页中的“启用并行代码生成”设置将 /Qpar switch 传递给编译器。

    要通过 VS 包以编程方式执行此操作,您可以使用 IVCRulePropertyStorage.GetEvaluatedPropertyValue 方法。

    例如,假设您已经拥有相关项目的 EnvDTE.Project 接口:

       Project proj = GetSelectedProject();
       VCProject vcProject = (VCProject)proj.Object;
       IVCCollection configs = (IVCCollection)vcProject.Configurations;
       VCConfiguration firstConfig = (VCConfiguration)configs.Item(1);
       IVCCollection rules = firstConfig.Rules;
    
       IVCRulePropertyStorage p = rules.Item("CL");
       string isParallelCodeGenSet = p.GetEvaluatedPropertyValue("EnableParallelCodeGeneration");
    

    注意,编译器设置是特定于配置的,上面的代码 sn -p 只使用找到的第一个。因此,您需要从与您感兴趣的配置关联的每个规则中检索属性。

    您应该查看一些其他链接:

    Working with Visual Studio C++ Project Properties

    How to read/write the new Visual C++ project properties

    VCConfiguration Interface

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多