OpenGL/glew未解析的外部符号

9
我遇到了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放入Additional Dependencies
  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的库...供您参考。 - pezy
1个回答

0
如果您正在使用静态库glew32s.lib,则需要定义预处理器标志GLEW_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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接