上一篇:无
下一篇:持续补充中…

 

前言

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

  
  

 

模块化

  

 

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

 

上一篇:无
下一篇:持续补充中…

 

SDL开发笔记(一):SDL介绍、编译使用以及工程模板的更多相关文章

  1. SDL开发笔记(二):音频基础介绍、使用SDL播放音频

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

  2. iOS开发笔记18:一些编译、开发调试、打包的细节整理

    1.以链库的方式引用第三方库 一些特殊场景可能会要求使用链库的方式使用第三方库,大体设置如下: ①Other Linker Flags里进行设置,格式为-l+库名称 ②Libray Search Pa ...

  3. FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流 ...

  4. 详细介绍Qt,ffmpeg 和SDL开发

        Qt 与 ffmpeg 与 SDl 教程是本文要介绍的内容,从多个角度介绍本文,运用了qmake,先来看内容. 1.  注释 从“ #” 开始,到这一行结束. 2.  指定源文件 1.     ...

  5. FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建

    前言   本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8.   FFmpeg简介   FFmpeg是领先的多媒体框架,能够解码 ...

  6. libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板

    前言   Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库,编译过了windows版本,有需求编译一个ubuntu版本的,交叉编译需求的同样可参照本文章 ...

  7. zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板

    前言   Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下.   版本编译引导 zlib在windows上的mingw32 ...

  8. libx264开发笔记(一):libx264介绍、海思平台移植编译

    前言   在编译ffmpeg时,使用到h264编码时是需要依赖libx264的,本文章是将将libx264作为静态库移植到海思上.   相关博客 <Qt开发笔记之编码x264码流并封装mp4(一 ...

  9. SDL 开发实战(一):SDL介绍及开发环境配置

    一.什么是SDL? SDL是 “Simple DirectMedia Layer”的缩写,SDL是一个开源的跨平台的多媒体库,封装了复杂的音视频底层操作,简化了音视频处理的难度. SDL使用C语言写成 ...

  10. Qt+MPlayer音乐播放器开发笔记(一):ubuntu上编译MPlayer以及Demo演示

    前言   在ubuntu上实现MPlayer播放器播放音乐.   Demo                Mplayer   MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布.此款软件 ...

随机推荐

  1. [转帖]Veeam Backup & Replication 10.0.0.4461安装部署(包含补丁)

    原文:https://www.cnblogs.com/cnzay/p/15561893.html Veeam Backup & Replication 是一款数据保护软件,为VMware 和H ...

  2. [转帖]Native Memory Tracking 详解(4):使用 NMT 协助排查内存问题案例

    https://www.modb.pro/db/557714 从前面几篇文章,我们了解了 NMT 的基础知识以及 NMT 追踪区域分析的相关内容,本篇文章将为大家介绍一下使用 NMT 协助排查内存问题 ...

  3. [转帖]宁可信鬼,也不信 iowait 这张嘴!

    https://zhuanlan.zhihu.com/p/407333624 原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处. 我们经常遇到iowait这个名词,在top命 ...

  4. ELK运维文档

    Logstash 目录 Logstash Monitoring API Node Info API Plugins Info API Node Stats API Hot Threads API lo ...

  5. Gitlab使用说明

          零.gitlab简介   Gitlab是一个成熟的代码管理工具.为企业和组织提供内部的源代码的存储和管理功能.         一.gitlab角色总览   gitlab中的角色分管理员和 ...

  6. git提交出现running pre-commit hook: lint-staged

    现象 今天提交代码的时候出现了 > running pre-commit hook: lint-staged Stashing changes... [started] Stashing cha ...

  7. 手撕Vue-数据驱动界面改变中

    经过上一篇的介绍,已经实现了观察者模式的基本内容,接下来要完成的就是将上一篇的发布订阅模式运用到 Nue 中,实现数据驱动界面改变. 在监听数据变化的章节当中,根据指定的区域和数据去编译渲染界面 这个 ...

  8. 4.8 C++ Boost 应用JSON解析库

    property_tree 是 Boost 库中的一个头文件库,用于处理和解析基于 XML.Json 或者 INFO 格式的数据. property_tree 可以提供一个轻量级的.灵活的.基于二叉数 ...

  9. Linux的信号管理 [补档-2023-07-30]

    信号 11-1简介: ​ 信号只是表示某个信号,不可以携带大量信息,信号需要满足特点的条件才会产生.是一种特别的通信手 段. 11-2 信号机制: ​ 假设有两个进程A,B,现在进程A给进程B发送信号 ...

  10. 小知识:后台执行Oracle创建索引免受会话中断影响

    因为客户环境的堡垒机经常会莫名的断开连接,也不是简单的超时,因为有时候即使你一直在操作,也可能会断. 这样对于操作一些耗时长且中途中断可能会导致异常的操作就很危险,而最简单的避免方法就是将其写到脚本中 ...