前言
开发过程中,需要操作一些硬件,如播放音频、播放视频,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:开发环境模板