【问题标题】:GLEW linking issues cannot find __imp_glGetIntegervGLEW 链接问题找不到 __imp_glGetIntegerv
【发布时间】:2017-04-23 08:40:29
【问题描述】:

注意:是的,我指定了 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 时遇到过这个问题吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      相关资源
      最近更新 更多