嗯,这是我的问题。我不知道如何在 Release 模式下实现这一点,因为编译器甚至没有发出警告(我知道如何从警告中强制错误——使用/we 选项)。我尝试了几个选项,包括将警告级别提高到 ALL;我已尽我所能搜索并尝试了微软关于此警告的文档,但没有很好的结果,而且我的想法已经用完了。
我正在使用 Visual Studio 2012。
感谢任何帮助。
最佳答案
我发现了问题。问题是这部分代码是包含我的解决方案的几个项目之一(这个特定的项目生成静态库),并且在 Release模式下,“整个程序优化”默认标记为“使用链接时间代码生成” (/GL
)。该错误确实会自行显现,但仅在链接时 出现!!由于我只是编译源码,所以之前没有看到。
我认为这是缺点,但我猜编译器不会事先知道那部分代码是否会被剥离。尽管如此,编译器能否更早地检测到这一点?我的解决方案需要几分钟才能编译,之后我才看到错误。线索是当我关闭整个程序优化时,我立即看到了错误。
感谢大家的帮助。
关于c++ - 如何使 'C4700: uninitialized local variable' 在 Release 模式下报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35486464/