Dev-Cpp/Mingw32 环境介绍(10)
上文回顾:
在上一文中,我向各位介绍了如何使用Dev-Cpp/MinGW来生成wxWidget。我想你们一定是早已经把这个wxWidget做成工程文件了。有关工程文件的制作,请看第十一章。
前一阶段比较忙,所以对于MinGW介绍的更新几乎是停止了(我在研究一些操作系统的写法)。再加上我对于现在文章的发展方向很迷茫,所以也想不出再介绍一些什么。所以也就没有写。如果各位有什么建议,我希望能看到你们提出来。
第十五章 SDL的下载和安装
对于在Win32下的用户一定会对SDL很陌生,因为你们从来没有听说过。不过对于Linux下的用户就不同了,因为Linux下的跨平台游戏开发工具就是SDL。不过,我这里介绍SDL并不是主张游戏,而已介绍一下MinGW的游戏开发环境。当然,SDL除了开发游戏还有很多其他的用途,我希望你们能善用她。其实,在Win32下的游戏开发不一定只有DirectX。SDL也是非常强大的。当然如果你用的是MS-C,那么你的SDL就是建立在DirectX上了。不过,她的稳定性我可不能保证。因为SDL的官方网站认为,MinGW的这种编译是安全版本……
SDL是一组包含若干媒体操作的工具库。个人觉得非常不错。你可以从网上免费获得她。你可以从她的官方网站 http://www.libsdl.org/ ,或者我常去的 www.sf.net 上找到她。如果你想在MinGW下制作SDL的程序,那么你必须下载 SDL-devel-1.2.8-mingw32.tar.gz 虽然体积大了点,但是物有所值。不过,如果你只是想运行几个SDL的软件,那么下载一个运行库就可以了,体积小巧。
当你下载完成后,你已经成功的三分之一了。下面我就要教你如何安装和设置这个SDL了。
打开你的压缩包,将里面的文件复制到一个新建的目录中,我现在假设这个目录是 (SDL_PATH)。当然,如果你的计算机上没有解压缩的工具,那么你可以从 www.sf.net 上下载GNUWin32中的解压缩工具,tar,gzip。如果你想偷懒,那么可以直接将要所包里的东西直接复制到Dev-Cpp或者MinGW的目录中。并跳过对编译器的设置。
现在我来说一下文件夹中文件的作用。
test/ 目录中的文件都是一些测试文件,你可以用她来测试你的SDL是否安装成功。所以,你可以在安装设置完成后删掉她,如果你愿意的话。
lib/ 目录中的文件是一些库文件,你在开发中必须要使用到他们,所以千万别删。
include/ 目录中是头文件,和lib/中的文件一样重要
docs/ 中的文件是SDL的教程,你可以从中学会如何操作SDL。虽然是英文的,但是还是写的不错的,基本不需要很好的英文基础就可以读懂。
bin/ 中的文件是SDL程序的运行库,在开发中不需要,但是在运行时就有大用处了。
接下来,我们为Dev-Cpp设置一下环境变量。在你的工程中将 (SDL_PATH)/lib 添加入你的库路径中。将 (SDL_PATH)/include/SDL 添加入你的头文件路径中。这些我都在前面介绍过了。如果你是MinGW的话,记得在编译的时候添加哦。
对于项目,我们除了添加路径,还要为程序链接提供库。具体的参数如下。
-lSDL -lSDL.dll -lSDLmain
上面是在你链接的时候,让ld从 libSDL.a libSDL.dll.a libSDLmain.a 中抽取函数。
一切,都设置好了,我们就来编译一个例子看看。
现在,我们就用test中的一个文件来作测试吧。为了方便各位的理解,我这里就直接使用MinGW了,跳过Dev-Cpp的操作,因为对IDE的操作确实很难说清楚,有时候一大段的内容只说清楚了一个很简单的内容。
我们从test目录中将文件 testwin.c sample.bmp复制到你的工作目录下(我通常会用一个WorkHome来放一些写的程序,这样不会东一个西一个了)。
在编译前,我们先要对testwin.c做一些小小的修改,用Dev-Cpp打开testwin.c。当然记事本也可以。将开头那段中,#include "SDL.h" 改成 #include <SDL.h>。然后保存退出(下面我们将不用Dev-Cpp)了。
然后我们写一个MakeFile.txt的文件,用来生成SDL程序。
#MakeFile.txt
all:
gcc -I"(SDL_PATH)/include/SDL" -c testwin.c -o testwin.o
gcc -L"(SDL_PATH)/lib" -mwindows -lmingw32 -lSDLmain -lSDL -lSDL.dll -o testwin.exe testwin.o
#MakeFile.txt End
最后我们使用命令提示符,在 testwin.c sample.bmp MakeFlie.txt 所在的目录下输入如下命令(但是首先你的系统必须做第一章那样的设置)。
make -f makefile.txt
如果没有任何问题你就得到了个名为testwin.exe的程序。
当然,现在你还不能运行她。因为你没有SDL.dll。你现在可以从bin目录中将SDL.dll复制到testwin.exe所在的目录中去了。现在可以运行了。当然,在你运行的目录中会出现两个文件。stdout.txt和stderr.txt。这两个是输出文件。
你现在可以对test中的一些例子进行编译了。当然,还是要对源码做一些小修改。如果你觉得你以后会经常使用她,那么你就可以将她做成工程文件,便于以后生成。
好了,直到现在,你对SDL的认识也就成功了三分之二,为什么是三分之二呢?因为还有三分之一的成功路程是你自己在对SDL的了解时走出来的。我不喜欢什么都手把手的教,什么都手把手的学。只有自己学会了,才是真正属于自己的。别人告诉你的那还是别人的。不过我还是很乐意解答你在学习使用中遇到的问题的。
文外音:
其实,我个人还是比较喜欢SDL的。原本想用SDL来做前面对Dev-CPP环境设置的介绍的。不过,后来发现SDL的网站暂时关闭了。所以,不得不用GTK来做介绍。在后面的一文中,我将在次将GTK推上我们的教程中。至于原因,是因为原来的内容只是为了介绍如何设置Dev-Cpp才引入的。下一篇,我是要以GTK为介绍重点。敬请期待。本系列文章还在继续中(也许要等我退休了才能写完吧,不知道这个编译器的公司会不会给我劳务费啊?)。
STUDIO软件开发组(SDT)
STUDIO Development Team
北斗星君(黄庠魁)