SDL安装移植(X86和loongson平台)

简介
1.SDL本地安装 (x86平台和龙芯平台)
1.1 安装过程
2.SDL交叉编译移植(x86平台)
2.1交叉编译过程
2.1.1 编译zlib-1.2.5
2.1.2 编译jpeg-7
2.1.3 编译freetype-2.4.3
2.1.4 编译libiconv
2.1.5 编译libpng-1.4.2
2.1.6 编译SDL-1.2.13
2.1.7 编译SDL_image-1.2.10
2.1.8编译SDL_ttf
2.2移植过程
2.3 1B上运行性能评估
3.SDL编译移植(Loongson平台)
3.1 编译过程
3.1.1 编译zlib-1.2.5
3.1.2 编译jpeg-7
3.1.3 编译freetype-2.4.3
3.1.4 编译libiconv
3.1.5 编译libpng-1.4.2
3.1.6 编译SDL-1.2.13
3.1.7 编译SDL_image-1.2.10
3.1.8编译SDL_ttf
3.2 移植过程
3.3 1B上运行性能评估


简介

SDL为Simple DirectMedia Layer 的简称,是一个自由的跨平台的多媒体开发包,适用领域如下:
1、游戏
2、游戏SDK
3、模拟器
4、演示软件
5、多媒体应用软件
SDL常用功能有:事件,视频,音频,CD音频,定时器,字节序无关。

1.SDL本地安装 (x86平台和龙芯平台)
X86平台系统环境:Ubuntu 11.04
龙芯平台系统环境:debian 5.0
1.1安装过程
两个平台安装方法相同。
在终端下执行以下命令:
#apt-get install libsdl1.2-dev
#apt-get install libsdl-image1.2-dev
#apt-get install libsdl-ttf2.0-dev

1.2验证过程
下载SDL-1.2.13.tar.gz
#tar xf SDL-1.2.13.tar.gz
#cd SDL-1.2.13/test
#./configure
#make
#./testbitmap

2.SDL交叉编译移植(x86平台)
系统环境:Ubuntu 11.04
移植环境:龙芯1B开发板
交叉编译工具链:gcc-3.4.6
2.1交叉编译过程
首先按照《1B开发板用户手册》3-3所示方法,安装交叉编译工具链。

建立编译库安装目录:
#mkdir /opt/mipsel
#export PATH=/opt/gcc-3.4.6/bin:$PATH
#mkdir /home/SDL
#cd /home/SDL

2.1.1 编译zlib-1.2.5

软件名称 zlib
功能描述 zlib是提供数据压缩用的函式库, 最初是为libpng函式库所写的,后来普遍为许多软件所使用
下载地址 http://www.zlib.net/
软件版本 zlib-1.2.5.tar.gz
依赖关系 默认
#export CC=mipsel-linux-gcc
#tar xf zlib-1.2.5.tar.gz
#cd zlib-1.2.5
# ./configure --prefix=/opt/mipsel --shared
# make
# make install
#export CC=gcc
2.1.2 编译jpeg-7
软件名称 libjpeg
功能描述 libjpeg是一个用c语言编写支持jpeg解码、编码的库
下载地址 http://linux.softpedia.com/get/Programming/Libraries/libjpeg-160.shtml
软件版本 jpegsrc.v7.tar.gz
依赖关系 默认

#tar xf jpegsrc.v7.tar.gz
#cd jpeg-7/
#./configure --host=mipsel-linux --build=i686-pc-linux --prefix=/opt/mipsel
#make AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
#make install
2.1.3 编译freetype-2.4.3
软件名称 freetype-2.4.3
功能描述 freetype是一个用c语言实现的字体栅格化引擎制作的一个库
下载地址 http://download.savannah.gnu.org/releases/freetype/
软件版本 freetype-2.4.3.tar.gz
依赖关系 默认
#tar xf freetype-2.4.6.tar.gz
#cd freetype-2.4.6
#./configure --prefix=/opt/mipsel --host=mipsel-linux --build=i686-pc-linux
#make

#make install

2.1.4 编译libiconv
软件名称 libiconv
功能描述 libiconv库为需要做转换的程序,实现了一个字符编码到另一个字符编码的转换
下载地址 http://www.gnu.org/software/libiconv/#downloading
软件版本 libiconv-1.13.1.tar.gz
依赖关系 默认
#tar xf libiconv-1.13.1.tar.gz
#cd libiconv-1.13.1
#./configure --host=mipsel-linux --build=i686-pc-linux --prefix=/opt/mipsel
# make AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CXX=mipsel-linux-g++
# make install
2.1.5 编译libpng-1.4.2
软件名称 libpng
功能描述 libpng是多种应用程序所使用的解析PNG图形格式的函数库
下载地址 http://www.libpng.org/pub/png/libpng.html
软件版本 libpng-1.4.2.tar.gz
依赖关系 默认
#tar xf libpng-1.4.2.tar.gz
#cd libpng-1.4.2
#./configure --host=mipsel-linux --build=i686-pc-linux --prefix=/opt/mipsel LDFLAGS="-L/opt/mipsel/lib -lz" CFLAGS="-I/opt/mipsel/include"
# make
# make install

2.1.6 编译SDL-1.2.13
软件名称 SDL-1.2.13
功能描述 SDL是一个自由的跨平台的多媒体开发包,适用视频音频和其他应用的软件
下载地址 http://www.libsdl.org/download-1.2.php
软件版本 SDL-1.2.13.tar.gz
依赖关系 默认
#tar xf SDL-1.2.13.tar.gz
#cd SDL-1.2.13
#vim ./src/joystick/linux/SDL_sysjoystick.c
将#include <limits.h> 改为#include <linux/limits.h>

# ./configure --host=mipsel-linux --prefix=/opt/mipsel --build=i686-pc-linux --disable-static --disable-nasm --disable-video-x11 --disable-x11-shared --disable-dga --disable-video-dga --disable-video-x11-dgamouse --disable-video-x11-vm --disable-video-x11-xv --disable-video-x11-xinerama --disable-video-x11-xme --disable-video-x11-xrander --disable-video-x11-dpms --disable-video-svga --disable-video-directfb --enable-input-tslib --disable-esd --disable-esdtest --disable-esd-shared --enable-pulseaudio=no --enable-pulseaudio-shared=no --without-x
# make
# make install

SDL/test 范例编译
# ./configure --host=mipsel-linux –prefix=/opt/mipsel --without-x
#make

2.1.7 编译SDL_image-1.2.10
软件名称 SDL_image-1.2.10
功能描述 SDL_image是用于处理图形文件的开源函数库
下载地址 http://www.libsdl.org/projects/SDL_image/
软件版本 SDL_image-1.2.10.tar.tar
依赖关系 默认
#tar xf SDL_image-1.2.10.tar.gz
#cd SDL_image-1.2.10
# ./configure --host=mipsel-linux --build=i686-pc-linux --prefix=/opt/mipsel --with-sdl-prefix=/opt/mipsel --enable-jpg --enable-png
#make
#make install
2.1.8编译SDL_ttf
软件名称 SDL_ttf-2.0.9
功能描述 SDL_ttf是让应用程序能渲染汉字的扩展库
下载地址 http://www.libsdl.org/projects/SDL_ttf/
软件版本 SDL_ttf-2.0.9.tar.gz
依赖关系 默认
#tar xf SDL_ttf-2.0.9.tar.gz
#cd SDL_ttf-2.0.9
#./configure --host=mipsel-linux --build=i686-pc-linux --prefix=/opt/mipsel --with-sdl-prefix=/opt/mipsel --with-freetype-prefix=/opt/mipsel --without-x LDFLAGS="-L/opt/mipsel/lib -lSDL -liconv -lfreetype"
#make
#make install
2.2移植过程
(1)将/opt/mipsel/lib/下交叉编译的动态库放入文件系统库目录lib中。

(2)编译测试例子testbitmap。
a)进入到SDL-1.2.13的test目录下
#cd /home/SDL/SDL-1.2.13/test/
#vim testbitmap.c
b)将图形窗口大小修改为320x240,与开发板显示屏大小一致。
即修改99行:
screen=SDL_SetVideo Mode(640,480,video_bpp,videoflags)为 screen=SDL_SetVideoMode(320,240,video_bpp,videoflags)
c)向SDL事件轮询循环加入延时指令,降低占用CPU的资源(注意:其 他的例子也需要)。
即在180行(即while ( SDL_PollEvent(&event) )循环外)添加如下:
SDL_Delay(10);
d)编译:
#make

(3)将程序testbitmap和图片picture.xbm放入文件系统中相同目录下。

(4)开发板上运行:
$./testbitmap


2.3 1B上运行性能评估
在1B板上运行testbitmap,使用top命令查看CPU运行情况
#./testbitmap &
#top
显示结果如下图所示:

可以看到,testbitmap运行过程中,内存占用2%左右,CPU占有率在4%~10%之间浮动。
3.SDL编译移植(Loongson平台)
系统环境:debian 5.0
移植环境:龙芯1B开发板
编译工具链:gcc-4.3.2(系统默认工具链)
3.1 编译过程
3.1.1 编译zlib-1.2.5
# ./configure --prefix=/opt/mipsel
# make
# make install
3.1.2 编译jpeg-7
#./configure --prefix=/opt/mipsel
#make
#make install
3.1.3 编译freetype-2.4.3
#./configure --prefix=/opt/mipsel
#make
#make install
3.1.4 编译libiconv
#./configure --prefix=/opt/mipsel
# make
# make install

3.1.5 编译libpng-1.4.2
#./configure --prefix=/opt/mipsel
# make
# make install

3.1.6 编译SDL-1.2.13
# ./configure --prefix=/opt/mipsel --without-x --disable-x11-shared
# make
# make install

SDL/test 范例编译
# ./configure –prefix=/opt/mipsel
#make

3.1.7 编译SDL_image-1.2.10
# ./configure --prefix=/opt/mipsel
#make
#make install
3.1.8编译SDL_ttf
#./configure --prefix=/opt/mipsel
#make
#make install

3.2 移植过程
文件系统ramdisk所在目录:/home/

将交叉编译的库放入文件系统库目录中:
#cp /opt/mipsel/lib/* /home/ramdisk/lib/

进入到SDL-1.2.13的test目录下
#cd /home/SDL/SDL-1.2.13/test/
#vim testbitmap.c
修改99行screen=SDL_SetVideoMode(640,480,video_bpp,videoflags)为screen=SDL_SetVideoMode(320,240,video_bpp,videoflags)
在180行(即while ( SDL_PollEvent(&event) )循环外)添加
SDL_Delay(10);
#make
#cp testbitmap /home/ramdisk
#cp picture.xbm /home/ramdisk
#cd /home
#mkcramfs ramdisk ramdisk.img
将文件系统镜像ramdisk.img烧入1B开发板,运行testbitmap

3.3 1B上运行性能评估
与x86上运行情况相仿。



猜你喜欢

转载自blog.csdn.net/NoBack7/article/details/7209332