在windows10系统上运行第一个SDL3项目

SDL = Simple DirectMedia Layer

使用的是SDL3-mingw

https://github.com/libsdl-org/SDL/releases/tag/release-3.2.24

上面这个页面,选择下载SDL3-devel-3.2.24-mingw.zip

蓝奏云下载链接:https://kuyouran.lanzoum.com/iaJmb39g37pe

 解压后复制x86_64-w64-mingw32这个目录到你的项目文件夹里,我的是sdl3_study:
sdl3_study\x86_64-w64-mingw32
创建我的项目入口文件demo.c
sdl3_study\demo.c
 
把x86_64-w64-mingw32\bin\SDL3.dll复制到sdl3_study文件夹里
sdl3_study\SDL3.dll
sdl3_study\demo.c
 
在cmd命令行里链接库和头文件(以下绝对路径改成自己电脑的绝对路径)

gcc demo.c ^
-I"P:\Users\Administrator\Downloads\sdl2_study\x86_64-w64-mingw32\include" ^
-L"P:\Users\Administrator\Downloads\sdl2_study\x86_64-w64-mingw32\lib" ^
-lSDL3 -mwindows ^
-o demo.exe

cmd运行demo.exe,应该是一个黑窗口。

 

完整的目录结构如下:

P:\Users\Administrator\Downloads\sdl2_study\x86_64-w64-mingw32

P:\Users\Administrator\Downloads\sdl2_study\demo.c

P:\Users\Administrator\Downloads\sdl2_study\SDL3.dll

demo.c内容如下:

#include <SDL3\SDL.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    if (!SDL_Init(SDL_INIT_VIDEO)) {
        fprintf(stderr, "SDL_Init failed: %s\n", SDL_GetError());
        return -1;
    }

    SDL_Window *win = SDL_CreateWindow("SDL3 Hello - MinGW",
                                       640, 480, 0);
    if (!win) {
        fprintf(stderr, "CreateWindow failed: %s\n", SDL_GetError());
        SDL_Quit();
        return -1;
    }

    /* 简单事件循环,按任意键或关窗口退出 */
    int running = 1;
    while (running) {
        SDL_Event evt;
        while (SDL_PollEvent(&evt)) {
            if (evt.type == SDL_EVENT_QUIT ||
                (evt.type == SDL_EVENT_KEY_DOWN &&
                 evt.key.scancode == SDL_SCANCODE_ESCAPE))
                running = 0;
        }
        SDL_Delay(16);   // ~60 FPS
    }

    SDL_DestroyWindow(win);
    SDL_Quit();
    return 0;
}

 

posted @ 2025-10-27 02:38  Rkey  阅读(3)  评论(0)    收藏  举报