SDL arm linux平台交叉编译
以下所涉及到的SDL源码和demo源码,有需要的请留下你的email 我给你发过去.
一.准备条件及环境
1.主机一台:装有linux操作系统
2.目标版:arm-linux环境,如mini2440装有linux内核,内核版本高于2.6.0
3.如果有对等网线可以连接主机与目标版,那么就不用准备U盘
二.准备软件步骤
1.打开光盘中的SDL1.2.13源码包,拷贝并解压到你的主机目录下如:/root/work/SDL/
2.打开光盘中的交叉编译工具3.3.2.tar.gz拷贝解压到你的主机目录下如:/root/work/linuxgcc/
三.安装交叉编译器
1.把交叉编译器(arm-linux-gcc) 版本:3.3.2 文件路径在光盘上的交叉编译工具下
2.在/usr/local/建立arm目录
3.解压缩3.3.2.tar.gz文件到/usr/local/arm/目录下
4.现在你的交叉编译器的地址为:/usr/local/arm/3.3.2
四.编译安装SDL-1.2.13
1.在你解压缩后,进入目录/root/work/SDL/
2.运行配置
./configure --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon
配置中指定使用帧缓冲设备,使用arm-linux-gcc交叉编译
3. 运行make进行编译
4. 创建目录 /root/work/SDLImage
5. 创建目录 /root/work/SDLImage/Lib
6. 创建目录 /root/work/SDLImage/Include
7. 拷贝目录/root/work/SDL/build/.libs/目录中全部文件到 /root/work/SDLImage/Lib
8. 拷贝目录/root/work/SDL/include/目录中全部文件到 /root/work/SDLImage/include
9. 创建程序目录 /root/work/SDLImage/Project
9. 编译demo程序
拷贝光盘上的SDL_DEMO/testalpha.c 文件到你的程序目录 /root/work/SDLImage/Project
进入程序目录 /root/work/SDLImage/Project
运行交叉编译命令:
arm-linux-gcc -o testalpha testalpha.c -I/root/work/SDLImage/include/ -L/root/work/SDLImage/Lib/ -lSDL
等待运行完成后在该目录下生成一个执行文件:testalpha,
恭喜你!!,证明你的SDL交叉编译环璋已经建立,该文件可以直接拷贝到arm目标版上运行.
五.在arm目标板上运行程序
1.请选择主机与目标机的连接方式,这边我介绍两种,一种是对等网线采用NFS方式连接,别一种比较简单一点,用U盘拷贝程序及运行库
2.采用网线的NFS方式连接
打开arm目标板的电源,进入linux系统后,运行命令
mount -t nfs 192.168.0.12:/root/work /mnt/nfs -o nolock
这里的主机IP地址是:192.168.0.12 NFS目录是/root/work
3.采用U盘方式
首先在目标机上格式化你的U盘为ext2文件格式
把目录 /root/work/SDLImage/Lib 和 /root/work/SDLImage/Project 两个文件夹全部拷贝到U盘上 这时的U盘目录下就有两个文件夹Lib和Project
把你的U盘插入arm 目标板后 arm目标版的电源
进入系统后把U盘挂载到/mnt/nfs目录下
注:U盘的挂载方法每种开发板都不一定相同,你可以参考开发板的说明文档.
4. arm目标板的NFS挂接目录是:/mnt/nfs
如果连接不成功请检查各各参数是否设置.
连接城功后,进入目录/mnt/nfs/SDLImage/
运行命令:
export LD_LIBRARY_PATH=$PWD/Lib:$LD_LIBRARY_PATH
该命令是设置SDL运行库的路径
接下来就可以运行SDL Demo程序了
进入目录:/root/work/SDLImage/Project
运行命令:
./testalpha &
惊喜的时刻到了吧,看看屏幕上有没有出现一个笑脸的图像呢? 到这一该就证明你已经成功移植了SDL到你的arm目标板上了.
具体SDL程序如何写,请参考光盘上其它的文件.