如何在Microsoft C ++生成工具中抑制D9025警告

问题描述 投票:3回答:2

我正在使用Microsoft C ++编译器和构建工具来编译库。我的构建环境设置了编译标志/ GL,但是对于特定的库,我需要关闭该标志。我可以使用/ GL-来执行此操作,但是会收到警告D9025,它只是告诉我我正在覆盖先前的设置。我要禁止显示此警告。但是命令行选项/ wd仅分叉Cxxx错误和警告,而不分叉Dxxx警告。如何抑制D9025警告?

c++ visual-studio msbuild suppress-warnings
2个回答
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>

0
投票

这有点旧,但是如果其他人遇到了这个并落在这里...

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

右键单击:

  • 有问题的项目=>属性
  • 配置属性=> C / C ++ =>命令行

例如:

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

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

要修复它,请删除“附加选项”中的/ MD。

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

将运行时库设置为:/ MD

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

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

© www.soinside.com 2019 - 2024. All rights reserved.