我有一个奇怪的问题突然出现在我正在研究的所有项目中。我正在使用C ++,SDL2和OpenGL,我的int main中发生的第一件事就是使用如下的OpenGL标志创建一个SDL窗口:
int main( int argc, char* args[] )
{
//Minor stuff here e.g. initialising SDL
mainwindow = SDL_CreateWindow("...", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_OPENGL);
}
由于某种原因,这已经开始导致分段错误。如果我将标志从SDL_WINDOW_OPENGL更改为其他任何内容,它确实会创建一个窗口,但很快就会失败,因为缺少OpenGL上下文来执行任何操作。除了SDL和OpenGL初始化之外,我已经删除了所有代码,但它仍然因为段错误而失败。
此问题从今天开始,共享两个共享相同基本int主结构的项目。这让我相信它不是代码问题(主要是因为代码实际上没有改变),但是我的设置/环境出错了。到目前为止,我已经尝试了以下无效:
a)可能导致这种情况的任何想法以及b)我应该开始寻找解决方法吗?
由于
森
答案 0 :(得分:0)
和生活中的许多其他问题一样,答案竟然是司机。某种类型的系统范围的更新干扰了图形渲染任何类型的OpenGL的能力。直接下载并安装最新的图形驱动程序修复它。