仅限版本中的Bug
Bug in Release only
我使用的是Microsoft Visual Studio Express 2013。我有3个项目的解决方案。1个静态库和两个引用该库的项目。当ONLY库的优化设置为/O2时,我的游戏中出现了一些奇怪的错误。当我仅针对库禁用优化时,它的运行方式与调试时完全相同。是什么原因造成的?我该如何解决?
您可能有未初始化的变量,这些变量由编译器在调试模式下自动初始化,而不是在发布模式下。
此外,您可能会面临对齐问题和较小的内存溢出,由于没有进行优化,您在调试模式下可以免受这些问题的影响,但当启用了优化并且您的代码以不同的方式对齐时,这可能会导致问题和未定义的行为。
尝试确保所有变量都已显式初始化,并且而不是假设:
int i;
is the same as int i = 0;
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- Clang bug?使用指针作为模板参数
- 在clang++预处理器中确定gcc工具链版本
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 不同的Visual Studio版本中缺少.dll
- 用符号版本替换对函数的所有调用
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 我需要分发哪些版本的可再分发文件
- CV_OCL_RUN宏如何在OpenCV(版本3.4.5)的goodFeaturesToTrack实现中工作?
- 在运行时读取 libstdc++ 版本
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- Vulkan SDK 版本 1.1.85.0 在 Kubuntu 18.10 上链接
- 如何正确实现与基类不同的版本?
- 从预处理器获取 Windows 版本(C++ Win32)
- 仅限版本中的Bug