加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

MSBuild C – 命令行 – 可以传递定义吗?

发布时间:2020-12-16 05:03:05 所属栏目:百科 来源:网络整理
导读:有没有办法转换这样的东西: #define ERROR_LOG_LEVEL 5 通过命令行将msbuild传递给它的项目? msbuild.exe {???}ERROR_LOG_LEVEL=5 target 我已经阅读了对类似问题的回答,看起来答案是否定的,只是想仔细检查以防一些天才找到解决方法. 解决方法 可以通过将
有没有办法转换这样的东西:
#define ERROR_LOG_LEVEL 5

通过命令行将msbuild传递给它的项目?

msbuild.exe {???}ERROR_LOG_LEVEL=5 target

我已经阅读了对类似问题的回答,看起来答案是否定的,只是想仔细检查以防一些天才找到解决方法.

解决方法

可以通过将 the /D option传递给编译器来定义宏.您可以使用ClCompile的AdditionalOptions从MSBuild指定/ D选项:
<ItemDefinitionGroup>
    <ClCompile>
        <AdditionalOptions>/DERROR_LOG_LEVEL=5 %(AdditionalOptions)</AdditionalOptions>
    </ClCompile>
</ItemDefinitionGroup>

如果您希望能够通过调用msbuild.exe来传递宏的值,您也可以轻松地执行此操作:

<ItemDefinitionGroup Condition="'$(ErrorLogLevel)' != ''">
    <ClCompile>
        <AdditionalOptions>/DERROR_LOG_LEVEL=$(ErrorLogLevel) %(AdditionalOptions)</AdditionalOptions>
    </ClCompile>
</ItemDefinitionGroup>

将msbuild.exe调用为:

msbuild /p:ErrorLogLevel=5 MyProject.vcxproj

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读