OpenGL编译问题

3

我正在使用Visual Studio C++和GLEW。项目设置已全部完成(包括Includes/Libs)。

MenuState.obj : error LNK2001: unresolved external symbol __imp____glewUseProgramObjectARB
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewLinkProgramARB
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewAttachObjectARB
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewCompileShader
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewShaderSource
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewCreateShader
MenuState.obj : error LNK2001: unresolved external symbol __imp____glewCreateProgramObjectARB

这些是我收到的唯一信息。在尝试实现着色器之前,一切都运作良好。问题是我在一个虚拟机中工作,所以我的问题是:GLEW是否需要opengl32.lib作为依赖项?因为如果我不将opengl32.lib添加到链接器中,我会得到更多的错误。如果需要,那么问题可能是由opengl32.lib引起的吗?因为我认为opengl32.lib是标准的Windows opengl32.lib,也就是说它只支持opengl 1.1,因此它无法链接...这些错误的问题是什么?

2
你需要链接glew库。你是否已经这样做了? - R. Martinho Fernandes
@icktoofay glue32.lib是什么? - Christian Rau
1
@user986803,你不应该同时链接GLEW的静态库和动态库,所以只需删除...s.lib版本即可。 - Christian Rau
1
为了让GLEW正常工作,您应该按照安装说明中所述链接到glew32.libglu32.libopengl32.lib。除此之外:您使用的是哪个版本的Visual Studio?也许您正在使用另一个版本生成的.lib文件,使它们无法与您的版本一起使用。自己构建GLEW应该可以解决这个问题。 - reima
你可以尝试使用GLee,它要容易得多。只需从svn下载.c和.h文件并将它们添加到您的项目中即可。 - Ben Voigt
显示剩余7条评论
1个回答

1
在Windows中包含GLEW之前,请确保在项目中定义了GLEW_STATIC。然后,您可以将整个源代码包含在项目文件中。否则,您需要将正确的GLEW DLL文件与可执行文件一起使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接