SDL开发笔记(一):SDL介绍、编译使用以及工程模板

简介: SDL开发笔记(一):SDL介绍、编译使用以及工程模板

前言

  开发过程中,需要操作一些硬件,如播放音频、播放视频,SDL作为通用的C库,可以实现同一套代码操作设备。


SDL简介

  Simple DirectMedia Layer是一个跨平台的开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。它用于视频播放软件、模拟器和流行游戏,包括Valve获奖目录和许多不起眼的捆绑游戏。

  SDL正式支持Windows、macosx、Linux、iOS和Android。源代码中可以找到对其他平台的支持。

  SDL是用C++编写的,用C++来工作,并且还有其他几种语言的绑定,包括C语言和Python。

  sdl2.0是在zlib许可下发布的。此许可证允许您在任何软件中自由使用SDL。


SDL功能

  


SDL下载

  当前最新的版本2.0.12,官方地址:http://www.libsdl.org

  下载版本包含了2.0.12版本的windows(zip)和linux(tar.gz)源文件

  CSDN下载地址:https://download.csdn.net/download/qq21497936/12578395

  QQ群:1047134658(点击“文件”搜索“SDL”,群内与博文同步更新)。


SDL编译

步骤一:解压文件夹

  

步骤二:使用CMake配置项目

  配置路径,勾选配置相关的选项,然后点击配置:

  

  配置生成工程的编译器类型和具体的编译器,如下图:

  

  选择Qt5.9.3,mingw32的c和c++编译器,如下图:

  

  

  生成工程,如下图:

  

  配置成功,然后“Generate”生成工程,如下图:

  

  修改一下安装路径,方便提取模块化,再配置然后生成工程。

  

步骤三:使用mingw32编译

  打开Q5的mingw32编译命令行:

  

  切换到生成工程的路径:

  

  开启四线程编译:

  

步骤四:编译成功

  

步骤五:安装install

  

  


本文章博客地址:https://blog.csdn.net/qq21497936/article/details/107160508

模块化

  


Demo

  该Demo为SDL模块化的测试环境,仅用于测试添加模块后,SDL环境配置是否成功。

测试代码

bool SDLManager::testEnv()
{
    // 初始化SDL
    if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)== -1))
    {
        // 初始化失败,打出错误
        qDebug() << __FILE__ << __LINE__
                 << "Failed to SDL_INIT_VIDEO|SDL_INIT_AUDIO"
                 << SDL_GetError();
        return false;
    }else
    {
        qDebug() << __FILE__ << __LINE__
                 << "succeed to SDL_INIT_VIDEO|SDL_INIT_AUDIO";
    }
    SDL_Quit();
    return true;
}

测试结果

  


工程模板:对应版本号v1.0.0

  对应版本号v1.0.0:开发环境模板



相关文章
|
Linux 测试技术 网络安全
VoIP网络电话(一):服务器搭建
前段时间有朋友按照教程搭建服务器,登录时报错“Operation is unauthorized because missing credential”,最近一直没空出来时间解决一下。
2079 0
|
5月前
|
Linux C++ iOS开发
C++ SDL库入门指南(从零开始学习SDL2图形与游戏开发)
本教程来源https://www.vpshk.cn/带你使用C++和SDL2从零开始创建图形窗口,涵盖环境搭建、代码解析与编译运行,适合入门游戏开发与多媒体应用,轻松掌握跨平台图形编程基础。
|
10月前
|
弹性计算 运维 Kubernetes
看阿里云操作系统控制台如何一招擒拿网络丢包
如何结合操作系统控制台快速定位问题?
|
设计模式 网络协议 Java
04.里式替换原则介绍
里式替换原则(LSP)是面向对象设计的重要原则之一,确保子类可以无缝替换父类而不破坏程序功能。本文详细介绍了LSP的定义、背景、理解方法及应用场景,通过电商支付和鸟类飞行案例展示了如何遵循LSP,并分析了其优缺点。LSP强调子类应保持父类的行为一致性,有助于提高代码的可扩展性、可维护性和可重用性,但也可能导致过度设计。最后,对比了LSP与多态的区别,明确了LSP作为设计原则的重要性。
527 4
|
存储 NoSQL 数据库
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
|
安全 Linux iOS开发
技术文档 | 使用 OpenSCA 批量扫描 Gitlab 仓库,盘点资产安心过节
按照下述教程快速批量扫描您的仓库,一旦新的攻击或0Day出现,通过资产清单即可快速定位漏洞及影响范围、有效缩短响应时间。
329 1
|
传感器 监控 物联网
物联网卡在不同应用设备中的基本操作
物联网卡(IoT SIM卡)在物联网(IoT)设备中扮演着至关重要的角色,它们为设备提供网络连接能力,使得设备能够远程交换数据。物联网卡的应用设备广泛,涵盖了从智能家居、智能城市、工业自动化到远程监控等多个领域。以下是物联网卡在不同应用设备中的基本操作流程概述:
|
机器学习/深度学习 人工智能 算法
目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头
目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头
1587 0
目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头
|
机器学习/深度学习 传感器 算法
构建未来:基于机器学习的智能健康监测系统
【5月更文挑战第12天】 在数字医疗领域,智能健康监测系统的出现正在革新我们对健康管理和疾病预防的理解。本文将探讨一个基于机器学习技术的智能健康监测系统的设计与实现,它能够实时跟踪个体的健康指标并通过预测性分析提前警示潜在的健康问题。通过融合生物统计学、数据挖掘及模式识别等先进技术,该系统旨在为个人用户提供量身定制的健康建议,并为医疗专业人员提供决策支持。文章首先概述了系统框架和关键技术,随后详细讨论了机器学习模型的建立过程以及如何优化这些模型以提高预测的准确性。最后,我们通过实验结果验证了系统的有效性,并讨论了未来的发展方向。

热门文章

最新文章