【发布时间】:2013-12-12 06:40:45
【问题描述】:
我正在使用 Microsoft Visual Studio Express 2013。我有一个包含 3 个项目的解决方案。 1 个静态库和两个引用该库的项目。当 ONLY 库的优化设置为 /O2 时,我的游戏中出现了一些奇怪的错误。当我禁用优化时,仅针对库,它的运行方式与调试时完全相同。这是什么原因造成的,我该如何解决?
【问题讨论】:
-
更多细节请。你到底得到了什么行为?能否隔离出导致问题的部分代码(请提供)
-
是的,请提供更多详细信息。有什么错误信息吗?
-
我所有的代码都在这里github.com/kinglime/SFML2?files=1 发生的是,它不会抛出任何致命错误。它实际上可以运行,但问题是它的结果与调试时完全不同。
-
构建之间的行为差异通常是由于未初始化的数据。
-
混合调试和发布模块意味着您将获得不同的堆和内存分配器。由一个模块分配并由另一个模块释放的内存将以各种有趣的方式失败。尽量与 all 调试或 all 版本保持一致。
标签: c++ optimization compiler-construction release visual-studio-2013