C语言第三方库 SDL 多媒体库 使用教程

Simple DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低级访问。视频播放软件,仿真器和受欢迎的游戏(包括Valve屡获殊荣的目录和许多Humble Bundle游戏)都使用它。

SDL官网: https://www.libsdl.org/
下载开发库:
Windows:
SDL2-devel-2.0.10-VC.zip(Visual C ++ 32/64位)
SDL2-devel-2.0.10-mingw.tar.gzMinGW 32/64位)

Windows Visual Studio 2019 中配置SDL

1.下载好SDL2-devel-2.0.10-VC,解压到固定目录下(如:E:\CLibrary\SDL2\SDL2-VC)
2.打开Visual Studio,新建一个控制台空项目,新建一个.cpp源文件
Visual Studio控制台空项目.png
3.配置SDL环境:在解决方案管理器中右键项目名称,选择属性
4.在C/C++ ->常规->附加包含目录中添加SDL2文件夹下的include文件夹,确认,应用
CC++ -常规-附加包含目录.png
5.在链接器->常规->附加库目录中添加SDL2文件夹下的lib\x86文件夹(因为此时活动平台为32位,所以选择x86。如果需要使用64位,则选择”lib\x64”文件夹)
链接器-常规-附加库目录.png
6.在链接器->输入->附加依赖项中添加SDL2.lib和SDL2main.lib,中间用英文分号或回车间隔
链接器-输入-附加依赖项.png
7.将lib\x86文件夹SDL2.dll复制到工程跟目录与.cpp文件同一目录中
同样要注意x86和x64要分别对应,如果是配置x64平台则复制粘贴”lib\x64”下的SDL2.dll。此处选择x86:
SDL2.dll复制到工程跟目录.png
8.测试SDL2配置环境:
//注意:SDL环境需要main函数有输入的参数(即使用不到)
测试SDL2配置环境.png

#include <stdio.h>
#include "SDL.h"
//注意:SDL环境需要main函数有输入的参数(即使用不到)
int main(int argc, char* argv[])
{
    SDL_Init(SDL_INIT_VIDEO); 
    SDL_Window* window = SDL_CreateWindow("SDL2", 100, 100, 640, 480, SDL_WINDOW_OPENGL);
    if (window == NULL)
    {
        printf("Could not create window: %s\n", SDL_GetError());
        return 1;
    }
    SDL_Delay(5000);
    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}

Windows MinGW CodeBlocks 中配置SDL

1.下载好SDL2-devel-2.0.10-mingw,解压到固定目录下(如:E:\CLibrary\SDL2\SDL2-mingw)
2.打开CodeBlocks,新建一个控制台空项目,自带一个main.cpp源文件
CodeBlocks控制台空项目.png
3.配置SDL环境:在当前项目右键选择构建选项
当前项目右键选择.png
4.在项目build选项中找到搜索目录,在编译器选项里点添加,添加SDL2include目录
E:\CLibrary\SDL2\SDL2-mingw\i686-w64-mingw32\include\SDL2
添加SDL2include目录.png
5.在项目build选项中找到搜索目录,在链接器选项里点添加,添加SDL2lib目录
E:\CLibrary\SDL2\SDL2-mingw\i686-w64-mingw32\lib
添加SDL2lib目录.png
6.切换到链接器设置选项页,在其他链接器选项中添加GCC编译参数
-lmingw32 -lSDL2main -lSDL2
顺序不能错,点击确定,这样SDL2在CodeBlocks中就配置好了
7.将i686-w64-mingw32\bin文件夹SDL2.dll复制到工程跟目录与.cpp文件同一目录中
E:\CLibrary\SDL2\SDL2-mingw\i686-w64-mingw32\bin
8.测试SDL2配置环境:
测试SDL2配置环境.png)

#include <stdio.h>
#include <SDL.h>

//注意:SDL环境需要main函数有输入的参数(即使用不到)
int main(int argc,char* argv[])
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window* window = SDL_CreateWindow("SDL 窗口",100,100,640,400,SDL_WINDOW_SHOWN);
    if(window == NULL)
    {
        printf("Could not create window: %s\n",SDL_GetError());
        return 1;
    }
    SDL_Delay(5000);
    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}

构建并运行,弹窗窗口,表示测试成功