【问题标题】:OpenGL compilation under debian - glGetUniformLocation not declareddebian下的OpenGL编译-未声明glGetUniformLocation
【发布时间】:2013-05-06 13:18:43
【问题描述】:

我找不到在Linux下编译以下测试代码的方法(为Mac开发的程序的一部分)

#include<GL/glui.h>
void test(){
   const char *name
   GLint   uni_loc,x,y ;
   GLuint  id;
   glVertex2i( x, y);
   uni_loc = ::glGetUniformLocation(id, name) ;
}

我尝试编译它:

g++ -c test.cpp -lglut -lGL -lGLU

g++ -c -lglut -lGL -lGLU test.cpp

我收到 glGetUniformLocation 函数的链接器错误:

 '::glGetUniformLocation' has not been declared

但不知道如何解决。我对openGl一无所知,并且在不同的实现之间完全迷失了。我在

中找到了函数的定义
  /usr/include/GL/gl_mangle.h
  /usr/include/GL/glew.h
  /usr/include/GL/glext.h

会不会是我的 GL 版本不对?

我安装了以下软件包:

  freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev mesa-common-dev

和 gcc 版本 4.7.2 (Debian 4.7.2-5)。

【问题讨论】:

    标签: linux opengl compilation debian flags


    【解决方案1】:

    获取扩展中定义的函数的一种可移植方式是使用扩展包装器,例如GLEW。一种不太健壮的方法是在包含“GL/gl.h”和“GL/gext.h”之前定义 GL_GLEXT_PROTOTYPES。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 2018-03-05
      相关资源
      最近更新 更多