GLEW链接问题无法找到__imp_glGetIntegerv

时间:2016-12-08 07:14:08

标签: c++ windows opengl visual-studio-2015 glew

注意:是的,我已经指定了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的问题?

1 个答案:

答案 0 :(得分:3)

当然,经过一个晚上的搜索后,您会在发布后10分钟找到答案。我有一段时间没有这样做,所以我忘了win32仍然要求你包含opengl32.lib,因为它包含glGetIntegerv的版本,以及它应该从windows包含的opengl 1.0实现中使用的其他函数,而不是像所有扩展一样从驱动程序中查询它们。