注意:是的,我已经指定了GLEW_STATIC。
所以我在尝试设置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
这里的正常差异,“没有声明的功能被定义”类型的错误,这些选择的四个是唯一缺失的。由于它们附加了__imp_标记,通常表示它们期望链接的动态库,所以有些东西告诉我它们可能是生成的文件中的错误?任何人都遇到了链接glew的问题?
答案 0 :(得分:3)
当然,经过一个晚上的搜索后,您会在发布后10分钟找到答案。我有一段时间没有这样做,所以我忘了win32仍然要求你包含opengl32.lib,因为它包含glGetIntegerv的版本,以及它应该从windows包含的opengl 1.0实现中使用的其他函数,而不是像所有扩展一样从驱动程序中查询它们。