开发者

Glew in VS 2010: unresolved external symbol __imp__glewInit

开发者 https://www.devze.com 2023-02-05 05:18 出处:网络
I am learning OpenGL by following the Redbook. When I come to around page 90, I need use glGenBuffers();

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 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 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.


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>
0

精彩评论

暂无评论...
验证码 换一张
取 消