Search code examples
visual-studioopengllinker-errorsglewunresolved-external

LNK2019 glewInit


I have glew version 1.9.0 I have put all the header files in the MSVS include directory and all the lib files in the lib folder. I then put the dll within the sysWOW64 folder and have added all the libs needed in the additional dependencies under the project properties which are:

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

However I am getting a linker error

Error 1 error LNK2019: unresolved external symbol _glewInit@0 referenced in function _main C:\Users\x\documents\visual studio 2013\Projects\openGLTest\openGLTest\main.obj openGLTest


Solution

  • First, you should not place your DLLs into sysWOW64 or any other Operating System owned directory such as System32. That said, this has nothing to do with where you placed your DLLs and everything to do with the library you linked to (or rather did not link to).

    You also should not be linking to 4 different GLEW configurations:

    1. Dynamic (glew32)
    2. Dynamic multi-context (glew32mx)
    3. Static (glew32s)
    4. Static multi-context (glew32mxs)

    The best library to link to usually is glew32s.lib as it negates the need for the DLL in the first place, but then you need to add #define GLEW_STATIC before you #include "glew.h"

    In MSVC you can add the following to a source file to take care of all of these things at once:

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