简而言之,在调用OpenGL函数时,使用GLEW并使用VS2013编译的程序崩溃。
这就是我的所作所为:
从他们的网站下载最新版本的GLEW。
在VS 2013中创建了一个空项目
添加了glew32s.lib; opengl32.lib; glu32.lib到链接器输入;
使用以下代码添加main.cpp(请注意,我确实定义了GLEW_STATIC)
#include <windows.h>
#define GLEW_STATIC
#include <GL/glew.h>
int main() {
GLuint s = glCreateShader(GL_VERTEX_SHADER);
return 0;
}
它使用以下链接器警告构建:
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>glew32s.lib(glew.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'glew32s.lib(glew.obj)' or at 'D:\javadyan\Code\tinygamelib_demo\Project1\Debug\vc100.pdb'; linking object as if no debug info
当我运行程序时,它会在遇到glCreateShader
来电时崩溃。
这种问题在VS2012中没有发生
有没有人试图在VS2013上使用GLEW?你有没有碰到类似的东西,你是如何解决它的?
答案 0 :(得分:0)
这似乎是C运行时混合版本的问题
1.当您使用VS2012构建您的dll时,Platform Toolset
您使用的是哪个?您可以在VS2013中使用相同版本的Platform Toolset
吗?
2.同样值得检查Runtime Library
(调试/发布,静态/动态)并比较它们在VS2012和VS2013项目中的值。