在VS 2010中加入:未解析的外部符号__imp__glewInit

Nov*_*Cai 17 visual-studio-2010

我正在按照红皮书学习OpenGL.当我到第90页左右时,我需要使用glGenBuffers(); 然后我需要安装"glew".按照www.cs.uiowa.edu/~cwyman/classes/common/howto/winGLUT.html中的步骤操作

我下载glew.zipglew.sourceforge.net/,并解压缩文件.

我放

  • glew.hC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
  • glew32.libC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib,和
  • glew32.dllC:\Windows\System32

之后,我在VS 2010中构建我的项目,并在其中Linker->input添加依赖项glew32.lib.

但是当我构建它时,我有错误

unresolved external symbol __imp__glewInit

我花了一整天时间来搜索解决方案,但没有找到解决方案.

希望有人可以帮助我.

Cam*_*ron 37

因为它没有被提及,我的问题是我正在链接glew的静态版本(glew32s.lib),但我没有定义GLEW_STATIC预处理器符号(所以我正在编译的头有效地与库I不匹配正在联系反对).


Nov*_*Cai 7

就像汉斯帕斯特先前所说的那样(他先前回答了我的问题但删除了答案.)

我需要编译glew的源代码.

如何编译,请参阅OpenGL:如何从源文件编译glew32.dll.

然后你会得到glew32d.dllglew32d.lib.

  • glew32d.dllc:\windows\sysWOW64(我也把它systemsystem32).
  • glew32d.libC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
  • glew.hC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include

然后它会工作.


PCa*_*Cas 5

另一种可能的解决方案,比从源代码编译dll更少的工作就是使用32位二进制文​​件.Windows 7 64bit只是不想与他们目前可用的64位二进制文​​件合作.

如果有人需要,这是一个非常一般的设置指南.http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/