From 8a0c11bc66e2380b6015bfa03f0ddffc5c6f162a Mon Sep 17 00:00:00 2001 From: lenn Date: Fri, 19 Sep 2025 23:19:25 +0800 Subject: [PATCH] add source code --- CMakeLists.txt | 16 ++++++++++++++++ main.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 main.c diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1599784 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.16) + +project(sdl-window LANGUAGES C) + +add_executable(sdl-window main.c) +# 由于我们把SDL2安装在了系统目录中 +# 所以这里可以直接在系统目录中寻找 +find_package(SDL2 REQUIRED) + +include(GNUInstallDirs) +install(TARGETS sdl-window + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2) diff --git a/main.c b/main.c new file mode 100644 index 0000000..1fc0ae3 --- /dev/null +++ b/main.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include +#include + +#undef main +int main() +{ + SDL_Window *window = NULL; // SDL窗口指针 + SDL_Init(SDL_INIT_VIDEO); + + window = SDL_CreateWindow("Hello SDL Window", + SDL_WINDOWPOS_UNDEFINED, // 不定义,让系统决定 + SDL_WINDOWPOS_UNDEFINED, + 640, // 宽 + 480, // 高 + SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); + + if (!window) { + printf("SDL_CreateWindow() failed, err: %s\n", SDL_GetError()); + return -1; + } + + SDL_Delay(10000); // 延迟10000ms + + SDL_DestroyWindow(window); // 销毁窗口 + + SDL_Quit(); // 释放资源 + + return 0; +}