SDL 获取与安装
下载地址:
SDL

  1. 上面是官网的界面,我是准备用MinGW,所以选择SDL2-devel-2.0.9-mingw.tar.gz
  2. 如果用VS的话,就选择VC版本。
    解压之后:

    可以看到有两个文件夹 x86_64-w64-mingw32i686-w64-mingw32 分别代表64位版本和32位版本,选择其中一个然后将其拷贝到一个自己容易找到的文件夹即可。例如我拷贝到D盘,并命名文件夹为 SDL_lib

插一句,建议解压使用一个比较好用的(没有任何广告和捆绑软件)7-zip


上面就是安装之后的示意图。

SDL 使用
输入一段代码:

#include <SDL2/SDL.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>int main(int argc, char *argv[])
{SDL_Window *window = SDL_CreateWindow("demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);bool quit = false;SDL_Event event;SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);while (!quit) {while (SDL_PollEvent(&event)) {switch (event.type) {case SDL_QUIT:quit = true;break;case SDL_MOUSEMOTION:if(SDL_GetMouseState(NULL, NULL) &SDL_BUTTON(1))SDL_RenderDrawPoint(renderer, event.motion.x, event.motion.y);break;}}SDL_RenderPresent(renderer);SDL_Delay(1000 / 60);}SDL_DestroyWindow(window);SDL_DestroyRenderer(renderer);return 0;
}

保存为.c程序(也可以用编辑器):

编写makefilel文件:

# 源文件
SRC = demo.c
# SDL 库的位置
SDLDIR = D:\SDL_lib
# 编译参数
CFLAGS = -I $(SDLDIR)\include -L $(SDLDIR)\lib -lmingw32 -lSDL2main -lSDL2 -O2 #-mwindows
# 选择编译器
CC = D:\msys2\mingw64\bin\g++.exedemo.exe: $(SRC)$(CC) $(SRC) $(CFLAGS) -o demo.exe


使用VSCode方便一些,用记事本makefile文件好像无法识别。
下载地址:
VSCode

按下Ctrl + Shift + P弹出搜索,输入C/C++

下面配置C/C++

配置好后还会有一个错误(因为还没告诉第三方库在哪里):

按照下面修改三处:在编译器路径设置框输入你的 mingw 编译器的具体位置,同时在编译参数框输入 -I 你的SDL库下的include文件夹,用来告诉编译器,你的第三方库头文件的文件夹在哪里,下面的IntelliSense 模式也改为对应的。

再用VSCode来编辑一下那个文件,可以看出是能够保存为.makefile文件的。所以说明记事本是要手动输入.makefile后缀的。

说明一下.makefile文件:

  1. SDLDIR 是你的 SDL 库放的位置,编译参数 -I 表示头文件的文件夹,-L 表示链接库的文件夹,一般该文件夹下有很多的库,但是还没有链接进去,然后 -l 表示要具体要链接的库,这里链接的三个库是必须的
  2. -lmingw32 使用 mingw 环境来创建 windows 窗口,如果使用VC++的编译器,这个库是不必要的
  3. -lSDL2main 和 -lSDL2 是 SDL库的主体部分
  4. -O2 为编译器优化等级
  5. -mwindows 被注释了,这是为了方便调试,使用该参数后你的程序在运行时就不会打开命令行,可在程序发布时再使用
  6. 选择编译器,这里我显式地指定为 msys2 环境下的 mingw64 g++ 的编译器,如果你把你的 mingw64\usr\bin 添加到了系统环境变量,那么直接写 g++ 或 gcc 也行
    参考:

```c
# 源文件
SRC = demo.c
# SDL 库的位置
SDLDIR = D:\SDL_lib
# 编译参数
CFLAGS = -I $(SDLDIR)\include -L $(SDLDIR)\lib -lmingw32 -lSDL2main -lSDL2 -O2 #-mwindows
# 选择编译器
CC = D:\msys2\mingw64\bin\g++.exedemo.exe: $(SRC)$(CC) $(SRC) $(CFLAGS) -o demo.exe

编辑好了之后,点击这里开始Debug。


如果让选择编译器,就选择我们上面安装的那个,但是会报这个错。

这时候有两种解决办法:

  1. 第一种:到 SDL 库的目录下,把 \bin 目录下的 SDL2.dll 添加到当前工程文件夹下
  2. 第二种: 把 SDL 库的 \bin 目录添加到系统环境变量中:

SDL 库安装、环境配置与使用相关推荐

  1. 想写游戏吗?手把手教你SDL的安装及配置(亲测有效!)

    文章目录 一.SDL安装 二.SDL配置 本文将详解基于Visual Studio(以下称为VS)的SDL的安装及配置 SDL(Simple DirectMedia Layer)是一套开放源代码的跨平 ...

  2. OpenFOAM安装+ParaView安装+环境配置(deb直接安装详细记录-Ubuntu14.04+OpenFOAM4.1)

    OpenFOAM安装+ParaView安装+环境配置 Ubuntu14.04+OpenFOAM4.1(deb直接安装详细记录) Ubuntu14.04安装配置OpenFOAM4.1:https://w ...

  3. Vue环境搭建(node安装,环境配置,运行项目)

    Vue环境搭建(node安装,环境配置,运行项目) 一.安装node 1.去官网下载node之后,推荐安装稳定版本(LTS)node官网下载地址 2.查看node安装成功否 node -v 查看nod ...

  4. Maven私库安装与配置

    前言 项目开发时,一般采用Maven来进行项目构建,管理,jar包下载,项目组开发人员开发时,只要在项目的pom.xml文件中,添加如下pom.xml信息从公共的库中下载相关的Jar包以及依赖Jar包 ...

  5. java安装 环境配置

    文章目录 1 介绍 1.1 下载地址: 1 windows安装 2.1 环境配置 3 liniux安装 3.1 查看服务器架构 3.2 卸载系统自带openjdk 3.3 环境配置 1 介绍 http ...

  6. JDK11+Tomcat10 下载安装+环境配置

    一.JDK 11 安装 1.到Oracle官网下载jdk11,并安装.搜索"jdk",选择"请到java官网下载jdk安装"进入. 点击"Accept ...

  7. ANTLR4(一) VsCode Win10 Java 安装+环境配置+官方示例

    ANTLR4 VsCode Win10 Java 安装及环境配置 vscode上实现官方示例 预期效果 编写批处理文件 编写.g4格式的语法文件 运行ANTLR4工具 测试生成的语法分析器 将语法分析 ...

  8. 【java之路】2. JAVA的安装——环境配置令人头大

    JDK卸载 删除java安装目录 删除JAVA_HOME 删除path下关于java的项目 dos命令java -version验证 JDK安装 进入官网,JDK8下载 (本次安装版本:jdk-8u3 ...

  9. tesseract库安装与配置环境变量(识别字幕)

    一.准备 1.首先,需要安装对应版本的tesseract-ocr应用 Windows的下载地址https://digi.bib.uni-mannheim.de/tesseract 在D盘建立文件夹Te ...

最新文章

  1. 蚂蚁金服提新概率图模型GLN,正确率提升8.2%,具备可解释性 | NeurIPS 2019
  2. IaaS, PaaS和SaaS是云计算的三种服务模式
  3. mysql查询索引like_mysql 索引与优化like查询
  4. eclipse上搭建mybatis
  5. Linux 探索之旅 | 第五部分第六课:一朝 Shell 函数倾,斗转星移任我行
  6. 面试题38 数字在排序数组中出现的次数
  7. 梳理.net知识,准备考试
  8. Nginx的安装、启动、停止命令
  9. 【数学建模】基于matlab银行多机排队论模型【含Matlab源码 1096期】
  10. 运维部门工作总结_运维工作个人工作总结范文
  11. 测试移动硬盘的真实容量的软件,u盘扩容修复工具
  12. PreparedStatement 不定参数处理
  13. Java集合分页公式
  14. Knowledge 7一阶谓词逻辑-Generalized Modus Ponens规则
  15. 月入万元的自由程序员 (转电脑报)
  16. lisp 焊缝标注_基于ObjectARX的焊接符号标注系统开发
  17. 傅里叶变换一步步详细推导
  18. c语言写的一个恶意程序
  19. matlab绘制平面等值线图
  20. C# 索引器(Indexer) this关键字的作用

热门文章

  1. 怎么样MyEclipse配置Tomcat?
  2. 中继器中继后怎么进入后台重新设置
  3. Windows程序设计_13_伤不起的书
  4. SEO基础知识8大精华文章之第三篇 SEO的历史(连载)
  5. ROS限速教程全集很实用
  6. XP 的共享方案(面对新人)
  7. 零基础Java学习之抽象类
  8. python做多元线性回归
  9. 特来电CMDB应用实践
  10. python爬虫——从此不用再愁找不到小说txt文件