【发布时间】:2017-10-24 19:42:45
【问题描述】:
我正在学习使用 SDL 库。但是,在我面临的众多问题中,有一个我在 Internet 上找不到解决方案。我用SDL_SetVideoMode设置了视频模式特性,但是运行程序时没有出现新窗口。唯一发生的事情是我的终端显示了一个奇怪的模式,但它看起来不像我应该拥有的窗口,即使是这样,它不会打开一个新窗口。这发生在我尝试运行程序的 shell 窗口中。
这是程序:
#include <stdlib.h>
#include <SDL/SDL.h>
void pause(void)
{
int on = 1;
SDL_Event event;
while (on == 1)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
on = 0;
}
}
}
int main(void)
{
if (SDL_Init(SDL_INIT_VIDEO) == -1)
return EXIT_FAILURE;
else
{
SDL_SetVideoMode(1024, 576, 32, SDL_HWSURFACE);
SDL_WM_SetCaption("SDL TEST", NULL);
pause();
SDL_Quit();
}
return EXIT_SUCCESS;
}
我使用 Makefile,里面是这样的:
FLAGS=-Wall -Wextra -Werror
SDLFLAG=-lSDL
NAME=sdl1
all: ${NAME} clean
${NAME}: ${NAME}.o
gcc -o ${NAME} ${NAME}.o ${FLAGS} ${SDLFLAG}
${NAME}.o: ${NAME}.c
gcc -o ${NAME}.o -c ${NAME}.c ${FLAGS} ${SDLFLAG}
clean:
rm -rf *.o
mrproper: clean
rm -rf ${NAME}
发生了什么?为什么我没有一个名为“SDL TEST”的新空窗口?
【问题讨论】:
-
这完全没有意义。您没有执行正确的程序。
-
感谢您的有用评论。
-
我不建议在 SDL2 出来且稳定时使用 SDL1
-
我按照这个站点上的说明进行操作:loka.developpez.com/tutoriel/sdl/installation/linux,我看到它在过去的 11 年里没有更新过!就像你说的,我一定是安装了旧版本的 SDL,这可能是我的程序无法运行的原因......我将寻找一种通过 linux bash 获取 SDL2 的方法。
-
我已经通过命令
sudo apt-get install libsdl2-dev安装了SDL2,我在usr/include/SDL2中拥有所有.h 文件,并且我使用了标题#include <SDL2/SDL.h>。但是问题仍然存在,所以我想这不是版本问题。我的问题下面的答案让我认为我的代码没有被正确的程序执行。我不知道,这对我来说非常不清楚。