0

我正在尝试在当前使用 Freeglut 的 OpenGL 应用程序中使用几何着色器,并且我正在尝试使用 GLEW 来做到这一点,因为据我了解,几何着色器功能在扩展中。我的包含顺序如下:

   #define GLEW_STATIC
   #include <glew.h>
   #include "freeglut.h"

但是,当我这样做时,会出现很多链接器错误,如下所示:

   error LNK2001: unresolved external symbol ___glewAttachShader

当我只使用基本的 OpenGL 功能(它,不在扩展中的东西)时,我没有收到任何错误,所以我知道编译器正在查找所有“基本”库,如 glu32 等。我正在使用 Visual Studio 2008 。 有什么建议么?

4

1 回答 1

2

这是一个链接器错误,表示它没有找到 glew 入口点。

链接到 glew 库(我假设您之前没有看到错误,因为您没有使用任何扩展名)。

编辑:实际上,这与您对“GLEW_STATIC”的使用直接相关。

GLEW 页面

在 Windows 上,您还可以选择将提供的项目文件 glew_static.dsp 添加到您的工作区(解决方案)并将其与其他项目一起编译。在这种情况下,您还需要在构建静态库或可执行文件时将 GLEW_BUILD 预处理器常量更改为 GLEW_STATIC,否则会出现构建错误。

这就是说,当您使用 GLEW_STATIC 设置时,您有责任构建和包含 glew 源文件。

于 2010-10-28T08:58:34.547 回答