我正在按照红皮书学习OpenGL。 当我到第90页左右时,我需要使用glGenBuffers(); 然后我需要安装“glew”。 按照以下步骤操作 www.cs.uiowa.edu/~cwyman/classes/common/howto/winGLUT.html
我从glew.zip
下载glew.sourceforge.net/
并解压缩文件。
我把
glew.h
中C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
在glew32.lib
和C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
在glew32.dll
C:\Windows\System32
之后,我在VS 2010中构建我的项目,在Linker->input
中,我添加了依赖项glew32.lib
。
但是当我构建它时,我有错误
unresolved external symbol __imp__glewInit
我花了一整天的时间来搜索解决方案,但没有找到解决方案。
希望有人能帮助我。
答案 0 :(得分:36)
由于它没有被提及,我的问题是我正在链接glew的静态版本(glew32s.lib),但我没有定义GLEW_STATIC
预处理器符号(所以我正在编译的头文件实际上与我链接的库不匹配。)
答案 1 :(得分:7)
就像汉斯帕斯特先前所说的那样(他早些时候回答了我的问题但删除了答案。)
我需要编译glew的源代码。
如何编译,请参阅OpenGL: How to compile glew32.dll from source file。
然后您将获得glew32d.dll
和glew32d.lib
。
glew32d.dll
放入c:\windows\sysWOW64
(我也将其放入system
和system32
)。glew32d.lib
放入C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
glew.h
放入C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
然后它会起作用。
答案 2 :(得分:5)
另一种可能的解决方案,比从源代码编译dll更少的工作就是使用32位二进制文件。 Windows 7 64bit只是不想与他们目前可用的64位二进制文件合作。
如果有人需要,这是一个非常一般的设置指南。 http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/
答案 3 :(得分:1)
还要确保为其添加适当的包含。我做了所有疯狂的库东西,不知何故忘了实际包含头文件。
就我而言:
#include <GL/glew.h>
答案 4 :(得分:1)
我也挣扎了几个小时。然后我意识到我的程序是win32而不是x64。当我在win32文件夹下使用glew.lib时,我在g64文件夹下包含了glew.lib。