OpenGL/glew 未解析的外部符号

OpenGL/glew unresolved external symbols

提问人:user1748405 提问时间:10/16/2012 更新时间:12/8/2021 访问量:2292

问:

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

  1. 将 glew32.dll 和 glew32d.dll 放入系统、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

我是否遗漏了什么?我还有什么可以尝试的吗?谢谢。

GLEW 未解析 - 外部

评论

0赞 pezy 6/23/2015
我遇到同样的错误,因为我使用 的 lib...仅供参考。x64

答:

0赞 DekuDesu 12/8/2021 #1

如果使用的是静态库,则需要定义预处理器标志才能解析符号。glew32s.libGLEW_STATIC

您可以在源代码内使用

#define GLEW_STATIC

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

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

Image Showcasing Preprocessor  location, Location: Project Properties > C/C++ > Preprocessor > Preprocessor Definitions

如果之后仍有未解析的外部符号,可能还需要 将 OpenGL32.lib 添加为链接器的附加依赖项。

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

Project Properties > Linker > General > Additional Library Directories

enter image description here