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



相关文章
|
编解码 API 开发工具
FFmpeg入门及编译 1
FFmpeg入门及编译
182 1
|
C++ Windows
FFmpeg入门及编译 3
FFmpeg入门及编译
114 0
|
2月前
SDL基础使用01(QtCreator)
如何在Qt Creator中创建一个C项目并使用SDL库来创建和显示一个简单的窗口。
78 1
SDL基础使用01(QtCreator)
|
7月前
|
编解码 缓存 算法
FFmpeg开发笔记(四)FFmpeg的动态链接库介绍
FFmpeg是一个强大的多媒体处理框架,提供ffmpeg、ffplay和ffprobe工具及八个库:avcodec(编解码)、avdevice(设备输入输出)、avfilter(音视频滤镜)、avformat(格式处理)、avutil(通用工具和算法)、postproc(后期效果)、swresample(音频重采样)和swscale(视频图像转换)。这些库支持定制化开发,涵盖了从采集、编码、过滤到输出的全过程。了解详细FFmpeg开发信息,可参考《FFmpeg开发实战:从零基础到短视频上线》。
141 0
FFmpeg开发笔记(四)FFmpeg的动态链接库介绍
|
API C语言 C++
FFmpeg入门及编译 2
FFmpeg入门及编译
156 0
|
7月前
|
算法 开发者
【Qt SDL相关问题】Qt 引入SDL导致main函数冲突的解决方案
【Qt SDL相关问题】Qt 引入SDL导致main函数冲突的解决方案
127 2
|
缓存 编译器 Linux
FFmpeg引入SDL扩展
FFmpeg 引入 SDL 扩展实际上非常简单,原理就是 编译 FFmpeg 的时候加上 SDL 的导入库就行。跟其他的 C/C++ 项目引入外部动态库是一样的。
218 0
|
编译器 API C语言
Qt使用FFmpeg的动态库
Qt使用FFmpeg的动态库
269 0
|
编解码 编译器 开发工具
Qt开发笔记(一):Qt+FFmpeg开发环境搭建以及工程模板
Qt开发笔记(一):Qt+FFmpeg开发环境搭建以及工程模板
Qt开发笔记(一):Qt+FFmpeg开发环境搭建以及工程模板
Qt 5——Qt程序打包(图文)
Qt 5——Qt程序打包(图文)
192 0
Qt 5——Qt程序打包(图文)