注意:是的,我指定了GLEW_STATIC。
所以我已经通过这个rodeo,然后尝试在一个新项目中使用glew,但是现在我在项目中使用了glew 2.0,它正在产生链接错误。 我刚刚在linux实例中生成源代码,并使用它们。
#include "Renderer.h" #include <windows.h> #include "GL/glew.h" #include "Logger.h" void Renderer::init(void* windowHandle) { Logger logger("Renderer::init"); GLenum result = glewInit(); if (result != GLEW_OK) { LOG(logger) << "Failed to run glew init with error: " << result; } }
这是我在一个命名空间渲染器中声明并在此定义的函数。 相关性是我只调用glewInit()
,就是这样。
产生的链接错误是:
Error LNK2019 unresolved external symbol __imp_glGetIntegerv referenced in function glewContextInit Error LNK2019 unresolved external symbol __imp_glGetString referenced in function glewContextInit Error LNK2019 unresolved external symbol __imp_wglGetCurrentDC referenced in function wglewInit Error LNK2019 unresolved external symbol __imp_wglGetProcAddress referenced in function wglewInit
这里的区别是正常的“没有声明的函数是被定义的”types的错误,这四个是唯一缺less的。 由于他们有附加的__imp_标签通常表明他们期待一个dynamic库链接,所以有些东西告诉我他们可能是在生成的文件中的错误? 任何人连接glew遇到这个问题?
当然,经过一个晚上的搜索,你发现后10分钟的答案。 我有一段时间没有这样做,所以我忘了win32仍然要求你包含opengl32.lib,因为它包含了glGetIntegerv的版本(和其他函数),它应该使用从windows的opengl 1.0实现中包含的,而不是像所有的扩展名一样从驱动程序中查询它们。