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

如题所述

若该文为原创文章,未经允许不得转载 原博主博客地址: blog.csdn.net/qq2149793...

Qt开发专栏:三方库开发技术(点击传送门)

无 下一篇:持续补充中…

前言

开发过程中,需要操作一些硬件,如播放音频、播放视频,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下载

当前最新的版本2.0.12,官方地址: http://www.libsdl.org 下载版本包含了2.0.12版本的windows(zip)和linux(tar.gz)源文件 CSDN下载地址: download.csdn.net/downl... QQ群:1047134658(点击“文件”搜索“SDL”,群内与博文同步更新)。

SDL编译

步骤一:解压文件夹

步骤二:使用CMake配置项目

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

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

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

生成工程,如下图:

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

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

步骤三:使用mingw32编译

打开Q5的mingw32编译命令行:

切换到生成工程的路径:

开启四线程编译:

步骤四:编译成功

步骤五:安装install

模块化

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:开发环境模板

无 下一篇:持续补充中…

原博主博客地址: blog.csdn.net/qq2149793... 原博主博客导航: blog.csdn.net/qq2149793... 本文章博客地址: blog.csdn.net/qq2149793...
温馨提示:内容为网友见解,仅供参考
无其他回答

SDL开发笔记(一):SDL介绍、编译使用以及工程模板
步骤一:解压文件夹 步骤二:使用CMake配置项目 配置路径,勾选配置相关的选项,然后点击配置:配置生成工程的编译器类型和具体的编译器,如下图:选择Qt5.9.3,mingw32的c和c++编译器,如下图:生成工程,如下图:配置成功,然后“Generate”生成工程,如下图:修改一下安装路径,方便提取模块化,再...

关于sdl的学习笔记,怎么绘制线条和矩形
内置变压器 一般笔记本电脑因为具有可携带性,所以有内置变压器 尤其是出国时国内外的电器额定电压不相同.所以为了满足这一点笔记本电脑一般都内置了一个变压器.使笔记本电脑的适用范围和寿命都大大增加.发展史 雏形 1979年,Grid Compass 1109电脑问世,这是人类有史以来对笔记本电脑制作的第一次尝试。这款...

SDLTF的算法笔记· 2:暴力和枚举
在实践中,暴力和枚举的使用广泛,尤其适合问题规模较小、时间复杂度相对较低的场景。通过穷举每一种可能情况,暴力算法确保了求解的全面性,尽管代价可能是执行效率的低下。然而,当问题规模增大,暴力法可能变得不可用,这时更高效、更优化的算法便显得尤为重要。示例应用:问题 Luogu - P1706 全排列输出...

python内部有多少个库(2023年最新整理)
Pygame是SDL多媒体库的python装饰器,SDL是一个跨平台开发库,旨在提供对以下内容的低级接口:音频、键盘、鼠标、游戏杆、基于OpenGL和Direct3D的图形硬件。 Pygame具有高度的可移植性,几乎可以在所有平台和操作系统上运行。尽管它具有完善的游戏引擎,但您也可以使用此库直接从python脚本播放MP3文件。 3、Pillow Pillow专门...

比国外软件更强大的国产软件有哪些?
万兴神剪手主要是面向家庭用户或者个人影视爱好者而开发的视频制作软件。它是以简单易用著称,但却是一款功能强大的视频编辑工具。万兴神剪手视频编辑、格式转换以及屏幕录制为一体的特性深得用户喜欢。 此外,万兴神剪手提供了大量的特效、字幕模板可供使用。简单而进一步“华丽”了你创作的作品的可观看性。无论对于新...

python有多少个库(python常用的库有哪些)
Pygame是SDL多媒体库的python装饰器,SDL是一个跨平台开发库,旨在提供对以下内容的低级接口:音频、键盘、鼠标、游戏杆、基于OpenGL和Direct3D的图形硬件。 Pygame具有高度的可移植性,几乎可以在所有平台和操作系统上运行。尽管它具有完善的游戏引擎,但您也可以使用此库直接从python脚本播放MP3文件。 3、Pillow Pillow专门...

python有多少库啊(2023年最新整理)
1、Dash Dash是比较新的软件包,它是用纯python构建数据可视化app的理想选择,因此特别适合处理数据的任何人。Dash是Flask、Plotly.js和React.js的混合体。 2、Pygame Pygame是SDL多媒体库的python装饰器,SDL是一个跨平台开发库,旨在提供对以下内容的低级接口:音频、键盘、鼠标、游戏杆、基于OpenGL和Direct3D的图形硬件...

FFmpeg开发笔记(十五)详解MediaMTX的推拉流
验证MediaMTX推拉流功能时,通过编译脚本执行pushvideo与pullvideo命令,分别用于推流与拉流操作。推流时,将文件2018.mp4推送到默认推流地址rtsp:\/\/127.0.0.1:8554\/stream;拉流时,从127.0.0.1:8888+i地址获取视频流并使用SDL窗口播放。测试显示,MediaMTX成功实现HLS协议的流媒体转发,但存在特定的...

STM32CubeMX学习笔记(9)——I2C接口使用(读写EEPROM AT24C02)
STM32CubeMX学习笔记(9)——I2C接口使用(读写EEPROM AT24C02)一、I2C简介I2C(Inter-Integrated Circuit ,内部集成电路) 总线是一种由飞利浦 Philip 公司开发的串行总线。是两条串行的总线,它由一根数据线(SDA)

python学现在有多少库
Pygame是SDL多媒体库的python装饰器,SDL是一个跨平台开发库,旨在提供对以下内容的低级接口:音频、键盘、鼠标、游戏杆、基于OpenGL和Direct3D的图形硬件。 Pygame具有高度的可移植性,几乎可以在所有平台和操作系统上运行。尽管它具有完善的游戏引擎,但您也可以使用此库直接从python脚本播放MP3文件。 3、Pillow Pillow专门...

相似回答
大家正在搜