0

在尝试编译一个简单的示例 openGL 示例以显示文本时,我遇到了“glWindowPos2i”无法解决的问题。glWindowPos2i 似乎在 GCC 下作为 C 程序编译得很好,但是在 eclipse 下作为带有 g++ 的 c++ 程序时出现无法解决的错误。(下面的解决方案)

环境是 ubuntu 13.04 下的 eclipse (juno) 和 openGL 3.3.0 (NVIDIA 310.44) GLEW 版本 1.8.0

4

1 回答 1

2

问题是 glWindowPos2i 是一个扩展,为了使用 c++ 编译,glWindowPos2i 需要由其地址定义。在程序的顶部,就在包含 glWindowPos2i 之后,需要将其定义为全局。

PFNGLWINDOWPOS2IPROC glWindowPos2i;

然后在程序体中,在glutInit之后,需要给全局变量赋值。

glWindowPos2i =  (PFNGLWINDOWPOS2IPROC) glutGetProcAddress("glWindowPos2i");

glutGetProcAddress 由包含定义,PFNGLWINDOWPOS2IPROC 的定义来自

我正在使用的包含的完整列表是

#include <GL/glew.h>
#include <GL/glext.h>
#include <GL/freeglut.h>
#include <GL/freeglut_ext.h>

我正在使用的链接器包括

-lGL -lm -lglut -lGLEW -lGLU
于 2013-09-16T06:23:52.740 回答