【问题标题】:OpenGL/glew unresolved external symbolsOpenGL/glew 未解析的外部符号
【发布时间】:2023-03-22 22:19:01
【问题描述】:

我遇到了 glew 和链接器错误的问题。我有:

  1. 把glew32.dll和glew32d.dll放到system、System32和SysWOW64中
  2. 将 glew.h 放入 GL 文件夹中
  3. 将glew32.lib、glew32d.lib、glew32s.lib放入Lib文件夹中
  4. 将 glew32.lib、glew32d.lib、glew32s.lib、glut32.lib、opengl32.lib 放入附加依赖项中
  5. 将 GLEW_STATIC 放入预处理器定义中

但是,我仍然收到以下错误:

1>project2.obj : error LNK2001: unresolved external symbol ___glewGetProgramInfoLog
1>project2.obj : error LNK2001: unresolved external symbol ___glewGetShaderInfoLog
1>project2.obj : error LNK2001: unresolved external symbol ___glewGetProgramiv
1>project2.obj : error LNK2001: unresolved external symbol ___glewGetShaderiv
1>project2.obj : error LNK2001: unresolved external symbol ___glewIsShader
1>project2.obj : error LNK2001: unresolved external symbol ___glewGetUniformLocation
1>project2.obj : error LNK2001: unresolved external symbol ___glewLinkProgram
1>project2.obj : error LNK2001: unresolved external symbol ___glewAttachShader
1>project2.obj : error LNK2001: unresolved external symbol ___glewCreateProgram
1>project2.obj : error LNK2001: unresolved external symbol ___glewCompileShader
1>project2.obj : error LNK2001: unresolved external symbol ___glewShaderSource
1>project2.obj : error LNK2001: unresolved external symbol ___glewCreateShader
1>project2.obj : error LNK2001: unresolved external symbol ___glewEnableVertexAttribArray
1>project2.obj : error LNK2001: unresolved external symbol ___glewVertexAttribPointer
1>project2.obj : error LNK2001: unresolved external symbol ___glewBufferData
1>project2.obj : error LNK2001: unresolved external symbol ___glewBindBuffer
1>project2.obj : error LNK2001: unresolved external symbol ___glewGenBuffers
1>project2.obj : error LNK2001: unresolved external symbol ___glewBindVertexArray
1>project2.obj : error LNK2001: unresolved external symbol ___glewGenVertexArrays
1>project2.obj : error LNK2001: unresolved external symbol ___glewUniformMatrix3fv
1>project2.obj : error LNK2001: unresolved external symbol ___glewUniformMatrix4fv
1>project2.obj : error LNK2001: unresolved external symbol ___glewUniform3f
1>project2.obj : error LNK2001: unresolved external symbol ___glewUniform1f
1>project2.obj : error LNK2001: unresolved external symbol ___glewUseProgram

我有什么明显的遗漏吗?还有什么我可以尝试的吗?谢谢。

【问题讨论】:

  • 我遇到同样的错误,因为我使用x64's lib...仅供参考。

标签: glew unresolved-external


【解决方案1】:

如果您使用的是静态库 glew32s.lib,则需要定义预处理器标志 GLEW_STATIC 以便解析符号。

您可以在源代码中使用

#define GLEW_STATIC

或将其添加到项目的预处理器指令中

Project Properties > C/C++ > Preprocessor > Preprocessor Definitions

如果你之后还有未解析的外部符号you may also need to add opengl32.lib as an additional dependency for the linker.

如果在此之后您仍然有未解决的有关 glew 的符号,请确保您实际上已将 .lib 添加到链接器搜索的库目录中。您可以将其添加到

Project Properties > Linker > General > Additional Library Directories

【讨论】:

    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 2011-02-09
    • 2016-08-08
    相关资源
    最近更新 更多