2012-12-04 34 views
0

我在Linux上进行交叉编译,想用MingW32编译为Windows,使用Code :: Blocks,按照这个页面上的说明操作: link,它似乎工作,但问题是只有一条OpenGL指令:

glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);

编译器通知“GL_GENERATE_MIPMAP未在此范围内声明”。
我做错了什么?
当我使用默认的GNU GCC编译器为Linux做同样的事情时,一切都很好。GL_GENERATE_MIPMAP在交叉编译时不存在

+1

你在这两个操作系统上的OpenGL版本是否相同? –

+0

对不起,我已经严重提出了我的问题,现在它似乎没问题。我只在Linux上编译 – Tom

+1

你在[OpenGL loading library](http://www.opengl.org/wiki/OpenGL_Loading_Library)中使用了什么? –

回答

2

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。然后将此文件添加到包含在程序源代码中的标题中。这应该给你的令牌。

+0

我已经在我的mingw目录中有glext.h,但是我用其他方法解决了这个问题 - 我使用了[here]中的glew.h头文件(http://julianibarz.wordpress.com/2010/ 05/12/glew-1-5-4-mingw32 /),并用glew.h代替了gl.h和glu.h ...现在它正在工作。谢谢。 – Tom