SDL移植
来源:互联网 发布:南京大学网络本科报名 编辑:程序博客网 时间:2024/04/30 05:34
SDL移植
注:此贴转自我们以前的Google协作平台!
- SDL简介
SDL是一个自由的跨平台的多媒体开发包,适用于 游戏、游戏SDK、演示软件、模拟器、 MPEG播放器和其他应用软件。是为数不多的商业游戏开发公司使用的免费软件库之一。它提供跨平台的二维帧缓冲区图形和音频服务,它支持 Linux、Win32 和 BeOS。也不同程度地支持其它平台,包括 Solaris、IRIX、FreeBSD 和 MacOS。除了大量的服务,包括线程、独立于字节存储次序的宏和 CD 音频,SDL
还提供了一个简单的 API,它允许您尽可能接近本机硬件。使用 SDL 有三重优点:稳定、简单和灵活。
- 稳定。如果 SDL 不向 API 提供可靠的支持,那么那些爱好者和商业公司就不能使用它。因为使用了 SDL,就添加了错误修正并增强了性能,也就加强了 API 的强健性。就像内核开发是分步进行的,SDL 的开发也是分步进行的,其中一部分是可靠稳定的 API,其它部分是新功能和构思的沙箱。
- 简单。SDL 被设计成一个简单的 API,以最少的代码实现您的构思。
- 灵活。返回到上面的 Optimum 演示代码示例,只要移植到 SDL,并确定一些数据假设,那么根本不必改动代码,演示就可以在 Win32、BeOS 和 Linux 控制台上运行了。灵活性的另一方面体现在尽管代码完全是跨平台的,但不会把您和底层实现隔开。SDL 提供了函数 SDL_GetWMInfo(),该函数可以让您访问底层驱动程序的专用窗口信息。
- 在PC机上安装SDL开发环境
和Linux下其他的软件库一样,SDL同样具有很强的移植性!我们所要做的就是在PC机上编写应用程序,调试通了以后就可以交叉编译移植到ARM板子上。到http://www.libsdl.org/download-1.2.php下载SDL-1.2.13 (stable),然后进行安装,由于后面的交叉编译的是`tar.xx`
源码包,所以建议在PC机上使用`tar.xx`包进行安装。
安装前请先查看是否安装有SDL,如果有请先卸载,如果你的系统使用的是`rpm软件安装包管理器`可以使用下面的命令进行查看:
# rpm -qa |grep SDL
如果使用`dpkg软件包管理器`,可以使用:
# dpkg -s SDL
下一步开始安装,这里以SDL-1.2.13.tar.gz为例:
# cd /tmp
# wget http://www.libsdl.org/release/SDL-1.2.13.tar.gz
# tar zxf SDL-1.2.13.tar.gz
# cd SDL-1.2.13
# ./configure --help
使用上面这条命令用来查看`configure`选项信息,然后在这些选项中筛选必要的选项。
# ./configure --prefix=/usr/local/SDL --disable-video-x11 2>&1 | tee conf_log
`--prefix=/usr/local/SDL`是SDL的安装目录,此目录可以自己设定。
由于我的系统没有x11的开发环境,并且也不会用到SDL操作x11,因此我使用了`--disable-video-x11`这个选项。
参数`2>&1 | tee conf_log`的意思是把configure的信息输出到终端的同时写入到`conf_log`中,这个参数很有用,我们可以不用一直
盯着屏幕看是否报错,等编译完成后直接查看`conf_log`这个文件即可,以后在`configure`、`make`等操作时,建议使用这个参数。
如果没有错误,执行:
# make 2>&1 | tee make_log
# make install
OK.PC 机上SDL安装完成。下面编译SDL的例子程序做测试:
# cd test
# ./configure --with-sdl-prefix=/usr/local/SDL
# make
# ./testwin
如果在屏幕上出现一张图片闪过说明SDL编译成功。
源码包,所以建议在PC机上使用`tar.xx`包进行安装。
安装前请先查看是否安装有SDL,如果有请先卸载,如果你的系统使用的是`rpm软件安装包管理器`可以使用下面的命令进行查看:
# rpm -qa |grep SDL
如果使用`dpkg软件包管理器`,可以使用:
# dpkg -s SDL
下一步开始安装,这里以SDL-1.2.13.tar.gz为例:
# cd /tmp
# wget http://www.libsdl.org/release/SDL-1.2.13.tar.gz
# tar zxf SDL-1.2.13.tar.gz
# cd SDL-1.2.13
# ./configure --help
使用上面这条命令用来查看`configure`选项信息,然后在这些选项中筛选必要的选项。
# ./configure --prefix=/usr/local/SDL --disable-video-x11 2>&1 | tee conf_log
`--prefix=/usr/local/SDL`是SDL的安装目录,此目录可以自己设定。
由于我的系统没有x11的开发环境,并且也不会用到SDL操作x11,因此我使用了`--disable-video-x11`这个选项。
参数`2>&1 | tee conf_log`的意思是把configure的信息输出到终端的同时写入到`conf_log`中,这个参数很有用,我们可以不用一直
盯着屏幕看是否报错,等编译完成后直接查看`conf_log`这个文件即可,以后在`configure`、`make`等操作时,建议使用这个参数。
如果没有错误,执行:
# make 2>&1 | tee make_log
# make install
OK.PC 机上SDL安装完成。下面编译SDL的例子程序做测试:
# cd test
# ./configure --with-sdl-prefix=/usr/local/SDL
# make
# ./testwin
如果在屏幕上出现一张图片闪过说明SDL编译成功。
- 交叉编译SDL库
由于ARM板的资源有限,不可能把所有的选项都开启,因此我们需要根据实际情况进行选择,下面的选项一般可以满足我们的要求:
# ./configure --prefix=/work/SDL_arm CC=arm-linux-gcc --host=arm-linux --target=linux --disable-debug --disable-cdrom --disable-esd --disable-arts --disable-arts-shared --disable-diskaudio --disable-nas --disable-esd-shared --disable-mintaudio --disable-nasm --disable-video-x11 --disable-video-dga --disable-dga --disable-video-ps2gs --disable-video-xbios --disable-video-gem --disable-video-opengl --disable-directx --disable-stdio-redirect --disable-osmesa-shared 2>&1 | tee conf_log
如果没有报错就可以进行编译:
# make 2>&1 | tee make_log
如果报错的话就需要根据出错信息调整一下`configure`的选项参数后编译(参数调整后没有必要`make clean`,直接`make` 就行了,make工具会智能的探寻哪些目标需要编译)。如果没有错误就可以`make install`了。
# make install
下一步测试交叉编译的SDL库是否能在ARM上正常使用。
交叉编译SDL的例子程序
# cd test
# ./configure CC=arm-linux-gcc --host=arm-linux --with-sdl-prefix=/work/SDL_arm
# make
如果报错的话,根据错误提示进行修改。
把交叉编译的库通过nfs服务器共享到ARM板。
# cp /work/SDL_arm/lib/libSDL-1.2.so.0.11.2 $NFS_ROOTDIR
# cp ./testwim $NFS_ROOTDIR
做SDL库文件的软链接(SDL动态库使用libSDL-1.2.so.0这个名字提供服务)。
# cd $NFS_ROOTDIR
# ln -s libSDL-1.2.so.0.11.2 libSDL-1.2.so.0
执行下列操作:
# ./configure --prefix=/work/SDL_arm CC=arm-linux-gcc --host=arm-linux --target=linux --disable-debug --disable-cdrom --disable-esd --disable-arts --disable-arts-shared --disable-diskaudio --disable-nas --disable-esd-shared --disable-mintaudio --disable-nasm --disable-video-x11 --disable-video-dga --disable-dga --disable-video-ps2gs --disable-video-xbios --disable-video-gem --disable-video-opengl --disable-directx --disable-stdio-redirect --disable-osmesa-shared 2>&1 | tee conf_log
如果没有报错就可以进行编译:
# make 2>&1 | tee make_log
如果报错的话就需要根据出错信息调整一下`configure`的选项参数后编译(参数调整后没有必要`make clean`,直接`make` 就行了,make工具会智能的探寻哪些目标需要编译)。如果没有错误就可以`make install`了。
# make install
下一步测试交叉编译的SDL库是否能在ARM上正常使用。
交叉编译SDL的例子程序
# cd test
# ./configure CC=arm-linux-gcc --host=arm-linux --with-sdl-prefix=/work/SDL_arm
# make
如果报错的话,根据错误提示进行修改。
把交叉编译的库通过nfs服务器共享到ARM板。
# cp /work/SDL_arm/lib/libSDL-1.2.so.0.11.2 $NFS_ROOTDIR
# cp ./testwim $NFS_ROOTDIR
做SDL库文件的软链接(SDL动态库使用libSDL-1.2.so.0这个名字提供服务)。
# cd $NFS_ROOTDIR
# ln -s libSDL-1.2.so.0.11.2 libSDL-1.2.so.0
执行下列操作:
- 启动nfs服务器
- 启动ARM
- 通过minicom登录ARM
- 挂载nfs共享文件夹
- 运行例子程序`testwin`
如果运行成功就说明移植成功,失败的话不用心慌,认真的参考出错信息查找出错原因。
- 编写SDL程序
- SDL移植
- SDL 移植
- SDL移植
- 移植SDL最新版本
- 移植SDL到android
- SDL移植到Mac
- 关于sdl symbian的移植
- SDL移植到mini2440 (s3c2440)
- Hi3519V101移植SDL+FreeType+SDL_ttf
- wince 6.0 移植sdl 1.2.14
- 移植ffmpeg和SDL到tq2440
- SDL移植到ARM-linux上
- 交叉编译SDL (移植到mini2440)
- SDL移植学习笔记(一)
- ----ffmpeg ---sdl在arm上的移植
- SDL移植到ARM-linux下
- SDL在开发板上的移植
- LINUX SDL打地鼠移植文档
- UMX-T协议定义
- nfs服务器安装
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- reactos操作系统实现(150)
- c# 线程间操作无效: 从不是创建控件“”的线程访问它,用托管来解决
- SDL移植
- 怎样能娶比尔盖茨的女儿为妻
- SQL大全-好文收藏
- ubuntu安装更新重启后桌面图标消失的解决方法
- CCAV真神了
- qtopia移植
- 破解加密的PDF文件
- "委托" 窗体之间调用
- 什么是交叉编译?