c++ - 如何使 'C4700: uninitialized local variable' 在 Release 模式下报错

标签 c++ visual-studio compiler-errors

嗯,这是我的问题。我不知道如何在 Release 模式下实现这一点,因为编译器甚至没有发出警告(我知道如何从警告中强制错误——使用/we 选项)。我尝试了几个选项,包括将警告级别提高到 ALL;我已尽我所能搜索并尝试了微软关于此警告的文档,但没有很好的结果,而且我的想法已经用完了。

我正在使用 Visual Studio 2012。

感谢任何帮助。

最佳答案

我发现了问题。问题是这部分代码是包含我的解决方案的几个项目之一(这个特定的项目生成静态库),并且在 Release模式下,“整个程序优化”默认标记为“使用链接时间代码生成” (/GL)。该错误确实会自行显现,但仅在链接时 出现!!由于我只是编译源码,所以之前没有看到。

我认为这是缺点,但我猜编译器不会事先知道那部分代码是否会被剥离。尽管如此,编译器能否更早地检测到这一点?我的解决方案需要几分钟才能编译,之后我才看到错误。线索是当我关闭整个程序优化时,我立即看到了错误。

感谢大家的帮助。

关于c++ - 如何使 'C4700: uninitialized local variable' 在 Release 模式下报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35486464/

相关文章:

c# - 在 VS2012 中获取 TypeInitializationException,但不是 2010

Android 开源项目构建错误 `FAILED: out/soong/build.ninja`

c# - namespace 错误中不存在类型资源

c++ - Windows Phone 8 的 MP4/h264 解码库

c++ - 本地引用不引用

c++ - 在QwtPlot scaleDraw中绘制向内刻度线

c++ - 什么是 void* 以及它可以指向哪些变量/对象

visual-studio - 无法使用 VS2010 附加到 Silverlight 应用程序

c - 最后从 C 和 C2220 返回状态

java - 错误 java.lang.NoSuchMethodError : No static method