如何在Microsoft C ++构建工具中禁止D9025警告

时间:2013-02-01 06:03:58

标签: c++ visual-studio msbuild suppress-warnings

我正在使用Microsoft C ++编译器和构建工具编译库。我的构建环境设置了编译标志/ GL,但对于特定的库,我需要关闭该标志。我可以使用/ GL-这样做,但是我收到警告D9025,它只是告诉我我要覆盖以前的设置。 我想压制这个警告。但命令行选项/ wd仅分析Cxxx错误和警告,而不是Dxxx警告。如何抑制D9025警告?

2 个答案:

答案 0 :(得分:2)

你不能压制D9025,你必须解决这个问题。 Command-line warning D9025表示您在cl.exe命令行上有冲突的选项。在你的情况下,你有类似的东西:

cl ... /GL ... /GL- ...

编译器实际上使用命令行上最后指定的选项,但该命令行非常混乱。

在.vcxproj文件中,请确保为WholeProgramOptimization属性设置了正确的选项。您的配置部分可能如下所示:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
  ...
  <WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>

答案 1 :(得分:0)

这有点旧,但是如果其他人遇到这种情况并落在这里...

很难确切说明此用户的状况,但是在Visual Studio中,在以下情况下可能会出现此问题:

右键单击:

  • 违规项目=>属性
  • 配置属性=> C / C ++ =>命令行

例如:

  • 如果您查看“所有选项”,则可能有以下选项:/ MT
  • 在“其他选项”底部的框中​​,它可能具有:/ MD

这些有冲突-因此是警告。

要修复此问题,请在“其他选项”中删除/ MD。

然后浏览至:配置属性=> C / C ++ =>代码生成。

将运行时库设置为:/ MD

同样,这只是发生这种情况的一种情况,但是如果用户使用makefile(将RuntimeLibrary设置为一个值,然后使用AdditionOptions将其设置为有争议的内容),则可能会发生类似的情况

顺便说一句,这只是一个警告,它最终会使用AddtionOptions中指定的值。