【问题标题】:Get Include Directories for custom build step获取自定义构建步骤的包含目录
【发布时间】:2011-11-28 11:02:32
【问题描述】:

我想知道在使用自定义构建步骤构建文件时是否有可能获取项目的包含目录列表。

想象以下情况:我的项目由 A.cppB.cppC.blah 组成。在“C/C++”->“常规”->“其他包含目录”字段下的项目属性中,我指定了用于 A.cppB 的包含目录列表.cpp。现在对于 C.blah,我确实指定了一个自定义构建工具并写入“命令​​行”->“mytool.exe C.blah -I*Direcotries?* -o C.obj”。现在如何获取在此步骤中为 C/C++ 指定的包含目录列表?当我点击“宏”时,没有这样的宏给我完整的包含列表。

有人知道实现这一目标的可能性吗?

【问题讨论】:

    标签: visual-studio visual-studio-2010 msbuild propertysheet


    【解决方案1】:

    我想我找到了答案,但不完整。

    可以在属性表中指定如下内容:

    <PropertyGroup>
        <ProjectIncludeDir>@(ClCompile->'%(AdditionalIncludeDirectories)')</ProjectIncludeDir>
    </PropertyGroup>
    

    这将使宏 $(ProjectIncludeDir) 也可用于包含包含目录列表的自定义构建步骤。

    这种方法的问题是,在这个宏上不能再进行字符串操作了。例如考虑以下:

    <ProjectIncludeDirDot>$(ProjectIncludeDir.Replace(';',','))</ProjectIncludeDirDot>
    

    这会导致 @(ClCompile->'%(AdditionalIncludeDirectories)') 中的宏 $(ProjectIncludeDirDot)。似乎在宏评估之后对转换进行了评估,这打破了这种替换。如果有人知道更好的解决方案,请...

    【讨论】:

    • 这似乎有问题。它连接所有ClCompile 项目的所有值,这意味着重复相同的值。在这种情况下,这可能不是一个大问题,但总的来说它很糟糕。
    • 这是一个很好的解决方案!完美运行。
    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 2021-11-05
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多