18

I am learning OpenGL by following the Redbook. When I come to around page 90, I need use glGenBuffers(); Then I need to install "glew".

By following the steps in here.

I download glew.zip from glew.sourceforge.net/ and unpack the files.

I put

  • glew.h in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
  • glew32.lib in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib, and
  • glew32.dll in C:\Windows\System32

After that, I build my project in VS 2010 and in Linker->input, I add dependencies glew32.lib.

But when I build it, I have an error:

unresolved external symbol __imp__glewInit
NoviceCai
  • 612
  • 2
  • 9
  • 24

5 Answers5

46

Since it's not mentioned already, my problem was that I was linking against the static version of glew (glew32s.lib), but I hadn't defined the GLEW_STATIC preprocessor symbol (so the header I was compiling against effectively didn't match the library I was linking against).

Cameron
  • 96,106
  • 25
  • 196
  • 225
8

I need to compile the source code of glew.

How to compile it, see: OpenGL: How to compile glew32.dll from source file.

Then you will get glew32d.dll and glew32d.lib.

  • Put glew32d.dll in c:\windows\sysWOW64 (I also put it in system and system32).
  • Put glew32d.lib in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
  • Put glew.h in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include

Then it will work.

NoviceCai
  • 612
  • 2
  • 9
  • 24
  • I spend two days to figure this out with the help from Hans Passant and Mark. – NoviceCai Jan 17 '11 at 19:15
  • 1
    I had the same problem. I started again from the scratch with this manual and it worked: http://www.3dgraphicsfoundations.com/visstudio.html – Karl Adler Jun 19 '14 at 18:17
  • @abimelex , thanks for posting the link, i had forgotten the step to define additional dependencies in VS, was driving me nuts – JR Smith Jun 21 '14 at 04:01
6

Another possible solution and less work than compiling the dll from source, is to just use the 32 bit binaries. Windows 7 64bit just doesn't want to co-operate with the 64 bit binaries that they currently have available.

Here's a pretty general setup guide if anyone needs. http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/

ICas
  • 197
  • 4
  • 2
2

I struggled with this too for a few hours. Then I realized my program is win32 instead of x64. I was including the glew.lib under the x64 folder when I should be using the glew.lib under the win32 folder.

Flmhdfj
  • 878
  • 1
  • 8
  • 18
1

Also make sure you add the proper include for it. I did all the crazy library stuff and somehow forgot to actually include the header file.

In my case it was:

#include <GL/glew.h>
Wade
  • 582
  • 5
  • 10