背景:
初次接触SDL,大约是当初做毕业设计时。如今再次接触,只换了平台而已,但事是人非,年华似水。曾经的理想,如今只有不停写代码、写代码,似乎除了这事情,别的不知做什么了。
从本文开始,将发布一些在Windows下开发的文章。其实,以我的习惯,不太想称写代码为“开发”,这名词现在还当不起。然而大环境如此,不得不这样做。就像一个人很牛,如果不写几篇文章,不搞几个作品,展示给别人,别人是看不到的。
闲话休提,本文主要涉及SDL在Windows系统中的编译,同时也给出一个简单的例子。
1、下载
SDL的下载地址是http://www.libsdl.org/download-1.2.php,最新版本为1.2.14。上面有源代码以及编译好的运行库。这里只下载源代码,自行编译。
2、解压
解压源代码包后,得到SDL-1.2.14, 该目录有VisualC.zip压缩包以及VisualC.html使用手册。解压VisualC.zip,得到VisualC目录。
3、编译
VisualC目录有SDL.dsw及SDL.sln两个工程文件,前者是VC6.0,后者是VS2005,可以用相应的编译器打开。另外也有SDL和SDLmain及tests三个目录。本文使用VS2003来编译,双击SDL.dsw,提示转换,选择“yes”,可以用Debug或Release方式进行编译,这里选择Release方式,按“Ctrl”+“Shift”+“b”即可编译。
4、库文件
SDL的Release目录生成SDL.dll及SDL.lib,SDLmain的Release目录生成SDLmain.lib,这三个库文件就是我们将要使用的库文件了。另外,有了库文件还需要头文件,我的做法是直接复制SDL-1.2.14目录的include目录到自己的工程中。
5、例子
使用第三方库时需要设置一下编译器选项。
1)、头文件及库路径
VS 2003:Tools->Options->左边的Projects->右边的Show directories for: 选Include files,添加对应的头文件目录;选Library files添加对应的库目录
2)、库
VS 2003:Project->工程属性->左边的Linker->Input->Additional Dependencies,输入SDL.lib SDLmain.lib,在Command Line的Additional Options中输入/NODEFAULTLIB:library
3)、共享库
VS 2003:Project->工程属性->左边的Configuration Properties->General->Use of MFC选Use MFC in a Shared DLL 至于库及头文件组织,根据各人习惯不同而不同。可以将头文件及库文件直接放到工程当前目录,也可以用放到自定义的目录中。比如,我就将前面得到的库文件放到lib目录,将头文件放到include目录中,再将这两个目录放到SDL目录中,以后凡使用SDL库,直接复制该目录即可。如果不想在VS中设置头文件路径,可以在程序中使用双引号来包含头文件。
下面给出一个简单的例子:
1 | #include <SDL.h> |
如果一切正常的话,运行该例子会弹出一个黑色的窗口,同时还有一个DOS窗口,里面有经典的“hello word”字符串。注意,由于使用动态库SDL.dll,需要将这个库与可执行文件放到同一目录才能正常运行。