【问题标题】:GL_GENERATE_MIPMAP does not exist when cross-compiling交叉编译时GL_GENERATE_MIPMAP不存在
【发布时间】:2012-12-04 18:34:08
【问题描述】:

我在 Linux 上进行交叉编译,想使用 Code::Blocks 为带有 MingW32 的 Windows 编译,按照此页面上的说明进行操作: link,好像可以,但是问题只有一条OpenGL指令:

glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);.

编译器告诉“GL_GENERATE_MIPMAP 没有在这个范围内声明”。
我做错了什么?
当我使用默认的 GNU GCC 编译器为 Linux 做同样的事情时,一切都很好。

【问题讨论】:

  • 两个操作系统上的 OpenGL 版本是否相同?
  • 对不起,我的问题表述得很糟糕,现在似乎没问题。我只在 Linux 上编译
  • 你的OpenGL loading library用的是什么?
  • 我正在使用这样的 SDL - SDL_Init(SDL_INIT_VIDEO) 然后 SDL_SetVideoMode(width, height, 16, SDL_OPENGL);你的意思是?还是只是包括在内?我使用#include #include
  • @Tom:这不是 OpenGL 加载,而是 OpenGL 上下文创建。

标签: c++ opengl cross-compiling codeblocks mingw32


【解决方案1】:

Windows OpenGL ABI 仅涵盖 OpenGL-1.1,这意味着任何超出该版本的 OpenGL 功能只能通过扩展机制来实现。

在您的情况下,您只需要一个额外的令牌。您的 MinGW 交叉编译器应该有一组额外的包含目录。 /usr 中至少有一个,/usr/local 中至少有一个(我不是指通常的/usr/include/usr/local/include 目录)。

前往http://opengl.org/registry 获取那里提供的glext.h 标头并将其放入目录/usr/local/$MINGW_INCLUDE/GL。然后将此文件添加到程序源代码中包含的标头中。那应该会给你令牌。

【讨论】:

  • 我的 mingw 目录中已经有 glext.h,但我用其他方式解决了 - 我使用了来自 here 的 glew.h 标头,并将 gl.h 和 glu.h 替换为glew.h ...现在它正在工作。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2014-01-09
  • 1970-01-01
相关资源
最近更新 更多