在尝试编译一个简单的示例openGL示例来显示文本时,我遇到了'glWindowPos2i'无法解决的问题。 glWindowPos2i似乎在GCC下作为C程序编译得很好,但是对于一个无法解决的错误,在eclipse下作为带有g ++的c ++程序。 (以下解决方案)
在ubuntu 13.04下使用openGL 3.3.0(NVIDIA 310.44)GLEW 1.8.0版本环境是eclipse(juno)
答案 0 :(得分:2)
问题是glWindowPos2i是一个扩展,为了用c ++编译,glWindowPos2i需要由它的地址定义。在程序的顶部,就在包含glWindowPos2i之后,需要将其定义为全局。
PFNGLWINDOWPOS2IPROC glWindowPos2i;
然后在程序体中,在glutInit之后,需要为全局变量赋值。
glWindowPos2i = (PFNGLWINDOWPOS2IPROC) glutGetProcAddress("glWindowPos2i");
glutGetProcAddress由include for定义,PFNGLWINDOWPOS2IPROC的定义来自
我正在使用的包含的完整列表是
#include <GL/glew.h>
#include <GL/glext.h>
#include <GL/freeglut.h>
#include <GL/freeglut_ext.h>
链接器包括我正在使用
-lGL -lm -lglut -lGLEW -lGLU