9

我遇到了 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

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

4

1 回答 1

0

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

您可以在源代码中执行此操作

#define GLEW_STATIC

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

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

展示预处理器位置的图像,位置:项目属性 > C/C++ > 预处理器 > 预处理器定义

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

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

Project Properties > Linker > General > Additional Library Directories

在此处输入图像描述

于 2021-12-08T04:00:00.937 回答