我已经在stackoverflow上检查了不同的解决方案:
- 我已经检查过我的“生成和运行”设置,确保其设置为“始终构建”。 - 配置管理器也被设置为“构建”。
附加信息:
- 这是一个c++中带有OpenGL、GLFW和glad的项目。 - 我使用的是Visual Studio Community 2017版本15.2。
这是一个非常烦人的问题,导致生产力大量损失,因为每次想要看到更改时都必须完全重建整个解决方案。如果需要更多信息,请询问。
更新:
以下是该问题的详细说明:
1.我有一个类可以旋转对象TransformerScript.cpp 2.我已将旋转速度设置为1。
3.对象如预期一样旋转。
4.现在我将速度浮点值从1更改为0。
5.我按运行(本地Windows调试器)
6.这是输出日志:
1>------ 开始构建: 项目: Star-Engine, 配置: Debug x64 ------
1>TransformerScript.cpp
1>c:\users\haeri\documents\github\space-engine\star-engine\src\header\matrix4f.h(44): 警告 C4267: 'argument': 从 'size_t' 到 'unsigned int' 的转换可能导致数据丢失
1>c:\users\haeri\documents\github\space-engine\star-engine\src\header\matrix4f.h(44): 警告 C4244: 'initializing': 从 'float' 到 'int' 的转换可能导致数据丢失
1>c:\users\haeri\documents\github\space-engine\star-engine\src\header\matrix4f.h(45): 警告 C4267: 'argument': 从 'size_t' 到 'unsigned int' 的转换可能导致数据丢失
1>c:\users\haeri\documents\github\space-engine\star-engine\src\source\transformerscript.cpp(13): 警告 C4244: 'argument': 从 'double' 到 'float' 的转换可能导致数据丢失
1>编译中...
1>生成代码...
1>跳过...(未检测到相关更改)
1>TestScene.cpp
1>Star-Engine.vcxproj -> C:\Users\haeri\Documents\github\Space-Engine\x64\Debug\Star-Engine.exe
c:\users\haeri\documents\github\space-engine\star-engine\src\source\glad.c(51): 警告 C6308: 'realloc' 可能返回空指针:将 null 指针分配给 'exts_i',作为传递给 'realloc' 的参数,将导致原始内存块泄漏。
c:\users\haeri\documents\github\space-engine\star-engine\include\stb\stb_image.h(3667): 警告 C6001: 使用未初始化的内存 'coutput'。
1>Star-Engine.vcxproj -> C:\Users\haeri\Documents\github\Space-Engine\x64\Debug\Star-Engine.pdb (部分 PDB)
1>已完成构建项目“Star-Engine.vcxproj”。
========== 构建: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
- 编译后的可执行文件启动
- 结果是相同的图形以相同的速度旋转。
- 期望行为:没有旋转,因为浮点数被设置为0。
- 我被迫进行“清理解决方案”和“重新生成解决方案”
- 这需要我的笔记本电脑约1到2分钟的时间
- VS完成重建新解决方案
- 我按下运行(本地Windows调试器)
- 对象不动了。(这是预期的)
替代方案
- 在速度浮点值的位置设置断点
- 我按下运行(本地Windows调试器)
- 有时候(90%的情况下)会弹出错误提示。其他时候(10%的情况下),一切都如预期的那样。
- 我按下“确定”
- 已编译的可执行文件开始运行
- 结果是相同的图形以相同的速度旋转。
- 期望的行为:没有旋转,因为浮点数被设置为0。
- 断点没有被触发!