当前位置: 首页 > news >正文

1、window 下SDL 下载使用, 测试环境搭建

1. SDL3下载

官网: https://www.libsdl.org/
在这里插入图片描述
点击SDL Releases 或者 SDL GItHub 进入github下载:
因为自己在windows下使用的mingw,所以下载mingw版的,也可以 下载源码自己编译。
在这里插入图片描述

2. 项目搭建

这里使用的时mingw + vsocde + cmake, 可以使用qt的vscode开发插件, 只需要安装cmake和mingw即可,不需要安装qt环境即可使用。可参考:
qt插件使用: https://blog.csdn.net/qq_51355375/article/details/142623120?spm=1011.2415.3001.5331
cmake和mingw安装参考: https://blog.csdn.net/qq_51355375/article/details/139890889?spm=1011.2415.3001.5331
不需要安装qt, 使用自己安装的cmake、mingw和qt vscode开发插件即可使用。

2.1 工程创建

创建工程和目录,并在目录下创建以下文件和目录:
在这里插入图片描述

2.2 复制头文件

复制下载的SDL头文件到上述的include目录下

在这里插入图片描述
在这里插入图片描述

2.3 复制库文件

将动态库文件拷贝到lib目录下
在这里插入图片描述
在这里插入图片描述

2.4 CmakeLists.txt

cmake_minimum_required(VERSION 3.30)
project(sdl3_lvgl)

set(CMAKE_C_STANDARD 11)

# 包含目录
include_directories(
    ${CMAKE_SOURCE_DIR}/include
)

# 链接库路径
link_directories(${CMAKE_SOURCE_DIR}/lib)

# 可执行文件
add_executable(${PROJECT_NAME} src/main.c)

# 链接库
target_link_libraries(${PROJECT_NAME}
    SDL3
)

# 拷贝库文件 文件
file(COPY ${PROJECT_SOURCE_DIR}/lib/SDL3.dll DESTINATION ${PROJECT_BINARY_DIR})

3. 编写测试

在src 下创建 main.c

#include <SDL3/SDL.h>

int main(int argc, char* argv[]) {
    // 初始化SDL
    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        SDL_Log(" SDL init falid : %s", SDL_GetError());
        return -1;
    }

    // 创建窗口
    SDL_Window* window = SDL_CreateWindow("SDL3", 640, 480, SDL_WINDOW_OPENGL);
    if (!window) {
        SDL_Log("create window fail: %s", SDL_GetError());
        SDL_Quit();
        return -1;
    }

    // 主循环
    bool running = true;
    while (running) {
        SDL_Event event;
        while (SDL_PollEvent(&event)) {
            if (event.type == SDL_EVENT_QUIT) {
                running = false;
            }
        }
    }

    // 释放资源
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}

测试结果:
在这里插入图片描述

相关文章:

  • 位运算题目:N 天后的牢房
  • [数据集]The Natural Scenes Dataset (NSD)介绍,申请及使用方法
  • 【蓝桥杯】算法笔记6
  • CubeMX配置STM32VET6实现网口通信(无操作系统版-附源码)
  • win11 nacos2.2.1 报错curl -X post 报错找不到和名称X匹配参数;不是命令
  • excel经验
  • (三十七)Dart 中使用 Pub 包管理系统与 HTTP 请求教程
  • leetcode0410. 分割数组的最大值-hard
  • 程序化广告行业(69/89):DMP与PCP系统核心功能剖析
  • STM32看门狗应用实战:独立看门狗与窗口看门狗深度解析(下) | 零基础入门STM32第九十五步
  • 详细介绍javaspringboot操控redis的高级特性1. 事务支持2. 发布/订阅3. Pipeline批量操作
  • git rebase复杂场景验证
  • QtConcurrent
  • COBOL语言的网络安全
  • AGI大模型(11):RAG系统
  • 在全球化浪潮下如何加强供应链风险管理?
  • Java全栈面试宝典:JMM内存模型与Spring自动装配深度解析
  • 数据结构实验3.1:顺序栈的基本操作与进制转换
  • 2025 年山东保安员职业资格考试要点梳理​
  • 深度学习篇---num_works选择
  • jsp网站开发公司/最优化方法
  • 淄博网站制作公司推广/杭州网站建设公司
  • 成都培训学校网站建设/万网官网入口
  • 网站开发视频压缩上传/b站推广渠道
  • 企业网站建设服务哪家好/seo关键词挖掘工具
  • 业绩显示屏 东莞网站建设技术支持/有链接的网站