我正在使用 Microsoft C++ 编译器和构建工具编译一个库。我的构建环境设置了编译标志 /GL,但对于特定的库,我需要关闭该标志。我可以使用 /GL- 执行此操作,但我收到警告 D9025,它只是告诉我我正在覆盖以前的设置。我想压制这个警告。但是命令行选项 /wd 只分叉 Cxxx 错误和警告,而不是 Dxxx 警告。如何抑制 D9025 警告?
问问题
8898 次
2 回答
5
你不能抑制 D9025,你必须修复它。命令行警告 D9025表示您在 cl.exe 命令行上有冲突的选项。在你的情况下,你有这样的事情:
cl ... /GL ... /GL- ...
编译器实际上使用了在命令行中最后指定的选项,但该命令行非常混乱。
在您的 .vcxproj 文件中,确保您为 WholeProgramOptimization 属性设置了正确的选项。您的配置部分可能如下所示:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
...
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
于 2013-02-03T18:11:26.520 回答
1
这有点老了,但万一其他人经历过这个并降落在这里......
很难准确地说出这个用户发生了什么,但在 Visual Studio 中,这个问题可能出现在以下实例中:
右键单击:
- 有问题的项目 => 属性
- 配置属性 => C/C++ => 命令行
举例:
- 如果您查看“所有选项”,可能会有这个选项:/MT
- 在底部的“附加选项”框中,它可能有:/MD
这些是冲突的——因此发出警告。
要修复它,请删除附加选项中的 /MD。
然后浏览至:配置属性 => C/C++ => 代码生成。
将运行时库设置为:/MD
同样,这只是发生这种情况的一种情况,但如果用户使用 makefile(将 RuntimeLibrary 设置为一个值,然后使用 AdditionOptions 将其设置为有争议的值),可能会发生类似的情况
顺便说一句,这只是一个警告,它最终会使用 AddtionOptions 中指定的值。
于 2019-11-26T18:21:40.237 回答