SDL错误,代码正确

时间:2015-07-03 09:51:38

标签: c++ eclipse sdl

这不是一个紧迫的问题,但在与SDL取得联系时,我只想了解一些事情。

所以,我开始阅读this tutorial并实现了以下代码段:

SDL_Init(SDL_INIT_EVERYTHING);
SDL_Delay(2000);
SDL_Quit();

在教程中,据说,控制台窗口应在2秒后打开并隐藏。我正在使用eclipse,而在运行时没有任何反应。这似乎是this one之类的问题,但相反,我使用的是Linux。另一件事是,我可以从控制台运行它,它也没有发生。之后,我从问题中读取other tutorial并插入以下行来创建一个窗口:

SDL_Window *window = 0;
window = SDL_CreateWindow("Hello World!",
                          SDL_WINDOWPOS_CENTERED,
                          SDL_WINDOWPOS_CENTERED,
                          640, 480,
                          SDL_WINDOW_SHOWN);

这对我的问题没有任何改变,没有显示任何窗口,但如果我将SDL_Init()的输出写入控制台,它将返回' 0' 0 (成功)从日食和' -1'从终端运行时(某些错误代码)。我开始使用optirun(eclipse和终端中的最终程序)。

之后,我只是尝试实现本教程的其余部分并使用SDL创建了一个OpenGL窗口,依此类推。我没有改变任何其他东西,但它适用于eclipse并在终端内,现在显示窗口。

有人知道为什么现在这样做以及为什么eclipse和终端之间存在差异?

1 个答案:

答案 0 :(得分:1)

你的意思是什么都没有发生? 如果您在运行程序时甚至没有获得控制台窗口,那么您应该请求它,即在VS上它将是Linker-> SubSystem-> Console。

  

另一件事是,我可以从控制台运行它,它也没有发生。

您期望发生什么?控制台窗口已经打开,因此程序应该在2秒内不执行任何操作并退出。

  

从eclipse运行时,' -1' ..有没有人知道为什么现在这样做以及为什么eclipse和终端之间存在差异?

调用SDL_GetError()并自行查找! :)

if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
    printf("SDL_Init failed: %s\n", SDL_GetError());
}