SDL 1.2.14在windows平台下的编译及例子
来源:互联网 发布:java命令行传参数 编辑:程序博客网 时间:2024/06/04 23:41
背景:
初次接触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中设置头文件路径,可以在程序中使用双引号来包含头文件。
下面给出一个简单的例子:
const int WINDOW_WIDTH = 640;
const int WINDOW_HEIGHT = 480;
const char* WINDOW_TITLE = "SDL Start";
int main(int argc, char *argv[])
{
SDL_Init( SDL_INIT_VIDEO );
SDL_Surface* screen = SDL_SetVideoMode( WINDOW_WIDTH, WINDOW_HEIGHT, 0,
SDL_HWSURFACE | SDL_DOUBLEBUF );
SDL_WM_SetCaption( WINDOW_TITLE, 0 );
SDL_Event event;
printf("hello world.");
bool gameRunning = true;
while (gameRunning)
{
if (SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT)
{
gameRunning = false;
}
}
}
SDL_Quit();
return 0;
}
如果一切正常的话,运行该例子会弹出一个黑色的窗口,同时还有一个DOS窗口,里面有经典的“hello word”字符串。注意,由于使用动态库SDL.dll,需要将这个库与可执行文件放到同一目录才能正常运行。
- SDL 1.2.14在windows平台下的编译及例子
- SDL_gfx-2.0.23在windows平台下的编译及例子
- 在Windows下用MinGW+GCC编译SDL的注意事项
- Windows下编译SDL
- Windows下编译SDL
- SDL在MACOS下的编译
- SDL在vc6下的编译
- 【转】SQLite3源码在Windows及WinCE平台下的编译方法
- SQLite3源码在Windows及WinCE平台下的编译方法
- SQLite3源码在Windows及WinCE平台下的编译方法
- SQLite3源码在Windows及WinCE平台下的编译方法
- SQLite3源码在Windows及WinCE平台下的编译方法
- SQLite3源码在Windows及WinCE平台下的编译方法
- Cairo,SDL在iOS平台的编译,运行
- arm Linux平台下SDL及扩展库的移植
- openH323的在windows平台下的编译
- 在Windows平台下FFMPEG编译的详细过程录
- 在Windows平台下FFMPEG编译的详细过程录
- Linux RH5平台下使用Oracle ASM创建数据库
- 微软Microsoft、谷歌Google、百度、腾讯面试题(四)
- 利用Android手机的蓝牙控制电灯
- python 3.2的学习
- 机房收费系统( 用例图、类图)
- SDL 1.2.14在windows平台下的编译及例子
- 乱码的解决方法
- ARM's architecture CPU access peripheral
- ASP、JSP、PHP 三种技术比较
- Android文件系统深入剖析
- linux下socket编程
- Android游戏开发之横竖屏的切换
- android文件系统制作教程
- 写在算法应用系列之前