【发布时间】:2021-03-17 11:24:20
【问题描述】:
我正在尝试使用 SDL2 创建一个窗口。我在编译时没有收到任何错误,但在运行时我也没有收到任何窗口。
这是我的代码(没有错误检查可读性)。
#include <stdlib.h>
#include <SDL2/SDL.h>
int main(void)
{
SDL_Window *win = NULL;
SDL_Renderer *ren = NULL;
SDL_Init(SDL_INIT_EVERYTHING);
SDL_CreateWindowAndRenderer(320, 640, 0, &win, &ren);
SDL_SetRenderDrawColor(ren, 0, 0, 0, 255);
SDL_RenderClear(ren);
SDL_RenderPresent(ren);
SDL_Delay(3000);
SDL_DestroyRenderer(ren);
SDL_DestroyWindow(win);
SDL_Quit();
return (0);
}
我还尝试了来自 wiki 的 this 代码示例,同样的问题。
编译
clang -F /Library/Frameworks -framework SDL2 main.c
我正在开发 MacOS Big Sur。我从their website(运行时二进制文件/Mac OS X)上下载的.dmg 文件安装了SDL2,并放入/Library/Frameworks 文件夹
这是兼容性问题吗?我该如何解决?
编辑
我也尝试在this tutorial 之后安装 SDL,仍然是同样的问题。
【问题讨论】:
-
您的代码对我有用 - 生成了 3 秒的黑色窗口。
-
这就是为什么我认为这个版本的 SDL2 和 macOS BigSur 存在兼容性问题,我没有看到任何窗口,我尝试了几个不同的代码......
-
添加
SDL_PollEvent和一个事件循环。无论如何,您都需要它来处理输入,而且我听说在某些平台上,窗口不会以其他方式显示。