仅限发布中的错误

时间:2013-12-12 06:40:46

标签: c++ optimization compiler-construction release visual-studio-2013

我正在使用Microsoft Visual Studio Express 2013.我有一个包含3个项目的解决方案。 1个静态库和两个引用该库的项目。当 ONLY 库的优化设置为/ O2时,我的游戏中出现了一些奇怪的错误。当我禁用优化时,仅针对库,它的运行方式与调试时完全相同。导致这种情况的原因以及如何解决?

1 个答案:

答案 0 :(得分:2)

您可以使用未初始化的变量,这些变量由编译器在调试模式下自动初始化,而不是在发布模式下。

此外,您可能面临对齐问题和次要内存溢出,由于没有优化,您在调试模式下受到保护,但是当启用优化并且您的代码以不同方式对齐时,这可能会导致问题和未定义的行为。

尝试确保明确初始化所有变量,假设:

int i;
is the same as int i = 0;