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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |