LNK2019 glewInit

时间:2014-06-12 02:03:44

标签: visual-studio opengl linker-errors unresolved-external

我有glew版本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:未解析的外部符号_glewInit @ 0在函数_main中引用C:\ Users \ x \ documents \ visual studio 2013 \ Projects \ openGLTest \ openGLTest \ main.obj openGLTest

2 个答案:

答案 0 :(得分:1)

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

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

  1. 动态(glew32)
  2. 动态多上下文(glew32mx)
  3. 静态(glew32s)
  4. 静态多上下文(glew32mxs)
  5. 要链接到的最佳库通常是glew32s.lib,因为它首先否定了对DLL的需求,但是您需要在#define GLEW_STATIC之前添加#include "glew.h"

    在MSVC中,您可以将以下内容添加到源文件中,以便同时处理这些内容的 所有

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

答案 1 :(得分:0)

我找到了解决此问题的方法here

  • 包含标题文件:

    1. 右键点击project > Properties > Configuration > C/C++ > General > Additional Include Directories
    2. 在右侧下拉列表中,点击<Edit...>
    3. Additional Inclue Directories已出现
    4. 点击new line icon > browse button,然后选择glew include文件夹:$(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

(旁注:接受的答案没有解决问题)