c++ - 仅在发布中存在错误

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

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

最佳答案

您可能有未初始化的变量,这些变量在 Debug模式下由编译器自动初始化,而不是在 Release模式下。

此外,您可能会面临对齐问题和轻微的内存溢出,由于没有优化,您在 Debug模式下可以避免这些问题,但是当启用优化并且您的代码以不同方式对齐时,这可能会导致问题和未定义的行为。

尝试确保所有变量都已显式初始化,并且不要假设:

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

关于c++ - 仅在发布中存在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20536667/

相关文章:

c++ - 32 位与 64 位库修饰

c++ - 将字符缓冲区转换为结构

c++ - 为什么g++ 5.4不能编译这段编译期素数代码?

android - 如何使用仅优化设置调用 ProGuard,即使对于 ant 调试版本也是如此?

php - cron 作业的可容忍内存使用量是多少?

parsing - 编辑时快速词法分析

c++ - 通过VideoWriter发送帧;无法再次捕捉到它(OpenCV 3.1,c++)

python - 为什么从串联列表创建集合比使用 `.update` 更快?

c - 英特尔 mpicc 链接器错误未定义对 `_mm_idivrem_epi32' 的引用

c - Eclipse CDT 包含问题