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
inC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
glew32.lib
inC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
, andglew32.dll
inC:\Windows\System32
After that, I build my project in VS 2010 a开发者_运维技巧nd in Linker->input
, I add dependencies glew32.lib
.
But when I build it, I have an error:
unresolved external symbol __imp__glewInit
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).
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
inc:\windows\sysWOW64
(I also put it insystem
andsystem32
). - Put
glew32d.lib
inC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
- Put
glew.h
inC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
Then it will work.
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/
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.
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>
精彩评论