所以这就是问题:当我调用glGenTextures时,我会遇到分段错误 .
我在linux上,这是我目前用来调查这个的代码:
#include <iostream>
#include <SDL/SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>
int main(int argc, char *argv[])
{
GLuint texture;
glGenTextures( 1, &texture );
return texture;
}
看起来很简单吧?好吧,我用GDB(GNU调试工具)跟踪了段错误,当我在文件/usr/lib/mesa/libGL.so.1中调用glGenTextures()时就会发生这种情况 .
那是我的视频驱动程序的openGL代码......
有任何想法吗?
2 回答
显示的代码没有做任何设置有效的OpenGL context,因此它不能使用OpenGL .
如何做到这一点因平台而异 . 如果你不这样做,你可以使用像GLFW这样的东西来进行相当便携,但当然这会增加依赖性 .
正如用户"unwind"所说,您需要初始化您的OpenGL上下文 . 你可以在没有3Dparty库的情况下完成它 - 检查这个NeHe示例:http://nehe.gamedev.net/tutorial/texture_mapping/12038/
希望这可以帮助 .