Note: including file: D:\FOO\INC\ippcc.h 1>Generating Code... 1>d:-6ren">
gpt4 book ai didi

c++ - VS2017 C++ : Howto supress warnings after "Generating Code..."

转载 作者:行者123 更新时间:2023-11-28 01:26:51 25 4
gpt4 key购买 nike

我在 MSVC 输出窗口显示“正在生成代码...”后收到警告。

1>Note: including file: D:\FOO\INC\ippcc.h
1>Generating Code...
1>d:\FOO\inc\ipinctrlimpl.h(130): warning C4701: potentially uninitialized local variable 'hResult' used
1>d:\FOO\inc\iwatchdogimpl.h(158): warning C4702: unreachable code
1> Creating library ..\..\LIB/FOO.lib and object ..\..\LIB/FOO.exp
1>FOO.vcxproj -> D:\FOO\FOO.dll
1>Done building project "FOO.vcxproj".

如何在不为整个解决方案禁用它们的情况下抑制这些警告?我自己无法触及代码,因此无法修复它们。

根据 this post ,此时编译器正在生成机器代码。那么这些警告怎么可能产生呢?毕竟,基本的编译已经完成了。

更新:

在项目设置中将全局警告级别设置为/W3 而不是/W4 可以防止这些警告(因为它们是 4 级警告)。

除了全局设置/W3,我还可以在本地显式禁用关键包括的警告:

#pragma warning(push)
#pragma warning(disable : 4701 4702)
#include "CriticalInclude.h"
#pragma warning(pop)

但奇怪的事情来了:通过

本地设置/W3(甚至/W1)
#pragma warning(push, 3)
#include "CriticalInclude.h"
#pragma warning(pop)

不会阻止这些警告。为什么?

似乎推送和弹出 warning disable 的处理方式与推送新的警告级别不同。

最佳答案

你不应该抑制警告,而应该处理它们。
如果您有无法访问的代码,为什么要把它放在那里?
确保初始化变量。

根据这个答案,基本编译在那个阶段没有完成:
VC++ 'Generating Code', what does it mean?

此外,如果这些不是您的文件,您应该向开发人员提出问题。但这是暂时的
How to suppress warnings in external headers in Visual C++

关于c++ - VS2017 C++ : Howto supress warnings after "Generating Code...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com