SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。下面主要介绍一下在Windows下搭建SDL2开发环境的过程。
下载
下载自SDL官网,在Development Libraries中选择相应的版本。我这里选择的是Windows平台下的Visual C++版,因为我接下来使用的环境是VS2013。
文件
把文件下载下来解压后的文档树应该是这样的:
1 | └─SDL2-2.0.4 |
主要包含使用说明、doc文档、头文件、以及库文件。这里的库文件包括x86和x64两种架构的,每种都含有一个动态链接库和三个静态链接库。
VS中的项目配置
SDL2说白了其实只是一个C语言库,因此配置他就跟配置其他任意的库一样,主要分为三步:
一、包含必需的头文件和库文件
因为我们需要能够include进SDL2的头文件,并且找到对应的实现代码(库文件),所以我们必需得让编译器能够找到他们。因此我们只需要在工程的项目->属性->配置属性->VC++目录<
里配置好相应的路径:
也就是修改图中的包含目录以及库目录,分别对应之前的include文件夹,以及lib/x86文件夹(VS默认的是x86架构)。
二、添加编译指令
既然用了第三方的库,那么我们在进行编译的时候肯定需要加上-l指令,从而指定编译进去的静态链接库。而按照微软一贯的保姆式作风,在VS中并不需要我们手动输入编译指令,只需要修改一下编译配置,然后就能直接编译了。这个配置在项目->属性->配置属性->链接器->输入->附加依赖项<
这里:
在这里面加上那三个静态库的名字即可(SDL2.lib、SDL2main.lib、SDL2test.lib)。
三、配置动态库
只配置了静态库已经是可以编译的了,但却是无法调试的,因为程序运行需要SDL2.dll这个动态库的支持。那么我们只需要将SDL2.dll加入电脑的PATH环境变量里或者是工程目录下,从而保证程序能找到他。
最后,针对SDL2还需要额外设置一个配置,就是程序的入口,具体原因不明。配置方法就是修改项目->属性->配置属性->链接器->系统->子系统
,内容改成”窗口 (/SUBSYSTEM:WINDOWS)“即可:
搞好上面这个配置,理论上就能跑SDL2的程序了,那我就直接把下面这个显示图片的程序作为Hello World来测试一下吧:
1 |
|
程序运行的结果就是显示test.bmp两秒钟。