LNK2019 glewInit

LNK2019 glewInit

提问人:DorkMonstuh 提问时间:6/12/2014 最后编辑:Sabito stands with UkraineDorkMonstuh 更新时间:3/6/2022 访问量:7078

问:

我已经获得了 1.9.0 版,我已将所有头文件放在 MSVS include 目录中,将所有 lib 文件放在 lib 文件夹中。然后,我将 dll 放在 sysWOW64 文件夹中,并在项目属性下的其他依赖项中添加了所需的所有库,这些库是:

  • opengl32.lib
  • glu32.lib
  • glut32.lib
  • glew32.lib
  • glew32mx.lib
  • glew32s.lib
  • glew32mxs.lib

但是,我收到链接器错误

错误 1 错误 LNK2019:函数 C:\Users\x\documents\visual studio 2013\Projects\openGLTest\openGLTest\main.obj openGLTest 中引用了未解析的外部_glewInit@0符号 _main

Visual-Studio OpenGL的 链接器错误 格鲁 未解析的外部

评论


答:

2赞 Andon M. Coleman 6/12/2014 #1

首先,不应将 DLL 放入或任何其他操作系统拥有的目录中,例如 。也就是说,这与你放置 DLL 的位置无关,而与你链接到的库(或者更确切地说是没有链接到)的库有关。sysWOW64System32

您也不应链接到 4 种不同的 GLEW 配置:

  1. 动态 (glew32)
  2. 动态多上下文 (glew32mx)
  3. 静态 (glew32s)
  4. 静态多上下文 (glew32mxs)

链接到的最佳库通常是因为它首先否定了对 DLL 的需求,但随后您需要在glew32s.lib#define GLEW_STATIC#include "glew.h"

在 MSVC 中,可以将以下内容添加到源文件中,以一次处理所有这些内容:

#pragma comment (lib, "glew32s.lib")
#define GLEW_STATIC
#include "glew.h"

评论

1赞 DorkMonstuh 6/12/2014
嗨,@Andon我执行了你说的,但是我仍然遇到同样的错误
0赞 Andon M. Coleman 6/12/2014
您是否删除了最初作为依赖项的 4 个不同的 GLEW 库?如果您真的尝试链接到所有 4 个,它们将创建符号冲突。
0赞 DorkMonstuh 6/12/2014
我将 glew32s 保留在依赖项中,但删除了其他依赖项。我还应该删除 glew32 吗?我还添加了您刚才提到的代码,但这也没有解决
0赞 Andon M. Coleman 6/12/2014
是的,不要将标头或库放在 MSVC 的目录中。将它们放在相对于项目根目录的目录中。我使用和在我自己的软件中。在 MSVC 中,我有 和 .您可以使用任何所需的约定,但这是我用来存储特定于平台/子系统的标头和库的约定,而无需修改 MSVC 安装的额外安装步骤。<project>/platform/OpenGL/glew32s.lib<project>/platform/OpenGL/glew.h#pragma comment (lib, "platform/OpenGL/glew32s.lib")#include "platform/OpenGL/glew.h"
0赞 DorkMonstuh 6/12/2014
我会试一试,只是我遵循了这篇文章中的第二个建议。我用过剩的方式做到了,但似乎不适用于 glew stackoverflow.com/questions/12171317/......
1赞 A-Sharabiani 12/6/2016 #2

我在这里找到了这个问题的解决方案:

  • 包括头文件:

    1. 右键单击您的project > Properties > Configuration > C/C++ > General > Additional Include Directories
    2. 在右侧下拉菜单中,单击<Edit...>
    3. Additional Inclue Directories已经出现
    4. 单击然后选择 glew include 文件夹:new line icon > browse button $(your path to glew)\glew-1.12.0\include
  • 包括库

    1. 右键单击您的项目> Properties > Configuratio Properties > Linker > General > Additional Library Directories
    2. 点击<Edit...>
    3. Additional Library Directories已经出现
    4. 对于 64 位版本:添加$(your path to glew)\glew-1.12.0\lib\Release\x64
    5. 对于 32 位版本:添加$(your path to glew)\glew-1.12.0\lib\Release\Win32
    6. 右键单击您的项目(再次)>Properties > Configuration Properties > Linker > Input > Additional Dependencies
    7. 点击<Edit..>
    8. Additional Dependencies窗口已出现
    9. 单击白色区域并写入glew32.lib