C++ OpenGL 与 Visual Studio Release-Config-Bug
Posted
技术标签:
【中文标题】C++ OpenGL 与 Visual Studio Release-Config-Bug【英文标题】:C++ OpenGL with Visual Studio Release-Config-Bug 【发布时间】:2016-08-21 21:11:11 【问题描述】:我正在使用 Visual Studio 2015 社区版,并且在发布配置中编译时遇到了一个奇怪的错误(该错误未显示在调试配置中)。 实际上,我使用 opengl 来简单地创建一个阴影贴图,然后用它渲染场景。正如我所说,在调试配置上编译会渲染阴影。 但是在发布配置上,它只是渲染没有阴影的场景。
我在互联网上搜索了一下,发现了一些关于错误配置的信息。 但我没有使用这些配置的经验。 (我不想摧毁一切;)) 有人可以帮我解决这个问题吗?
【问题讨论】:
明确 UB / 单元化变量。请发布您的代码 这是一个快速的...我的 LightPlane-Class 的构造函数有一个没有名称的参数...所以它使用了“类实例的远变量.. . 谢谢!没有你的建议,我没有看参数 ;) 我认为,如果您对自己的问题发表了明确的答案,SO 读者会很高兴(鼓励这样做)。我今天没能正确回答类似的“debug OK / release KO”问题! 【参考方案1】:我的 LightPlane-Class 的构造函数有一个没有名称的参数......所以它使用了未初始化的类实例的“远”变量
LightPlane::LightPlane(glm::vec3& position, glm::vec3& lookAt, glm::vec3& up, GLfloat near,
GLfloat far, GLfloat fov, GLfloat aspect)
//the "far"-parameter wasn't named
this->far = far;
this->near = near;
this->position = position;
this->fov = fov;
view = glm::lookAt(position, lookAt, up);
projection = glm::perspective(fov, aspect, near, far);
【讨论】:
以上是关于C++ OpenGL 与 Visual Studio Release-Config-Bug的主要内容,如果未能解决你的问题,请参考以下文章
使用 C++ 和 Visual Studio 2008 设置 OpenGL
在 Visual C++ 中的 Windows 窗体应用程序上使用 OpenGL
Visual Studio 2012 C++ OpenGL GLFW 链接器错误 [重复]
如何在 Windows 7 中使用 OpenGL、Glut 和 Visual Studio 2008 准备 C++ 项目