(未完成)ARM-linux 移植 SDL
2.
交叉编译SDL
编译SDL前先要编译其依赖库 tslib、libiconv
Tslib
$ cd tslib-1.4
$ sudo apt-get install libtool automake autoconf
$ ./autogen.sh
$ echo "ac_cv_func_malloc_0_nonnull=yes"> arm-linux.cache
$ ./configure --prefix=/xyq/cross_compile/SDL --host=arm-linux --cache-file=arm-linux.cache
$ make
$ make install
Libiconv
$ cd ../libiconv-1.14
$ ./configure --prefix=/xyq/cross_compile/SDL --host= arm-linux --with-gnu-ld
$ make
$ make install
SDL
$ cd ../SDL-1.2.14
$
./configure --prefix=/xyq/cross_compile/SDL --host= arm-linux
--build=i386 --with-gnu-ld --disable-video-nanox
--disable-video-qtopia --disable-pulseaudio --disable-video-photon --disable-video-ggi
--disable-video-svga --disable-video-aalib --disable-video-dummy --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-video-x11 --disable-nasm --enable-joystick --enable-input-tslib
--enable-video-fbcon CPPFLAGS="-I/xyq/cross_compile/SDL/include" LDFLAGS="-L/xyq/cross_compile/SDL/lib -lts-liconv"
$ make
$ make install
3. SDL测试程序交叉编译
SDL的测试程序在SDL源码目录的test目录下。
1)进入test目录,执行如下configure脚本生成Malefile
$ ./configure --prefix=/xyq/cross_compile/SDL --host=arm-linux
NM=arm-linux-nm LD=arm-linux-ld
CC=arm-linux-gcc
CXX=arm-linux-g++ AR=arm-linux-ar
2)Makefile默认是编译所有测试程序,但是在ARM上,游戏杆和opengl测试无法编译通过,要从Makefile文件中TARGETS去掉testgl,testjoystick的编译.
另外,默认的测试的路径指向是X86版,最简单的办法,可以手工修改Makefile调成ARM版。将
改成:
之后 $ make 将在当前目录生成可执行文件。
4. SDL程序的测试
先将SDL编译结果移植到ARM,分别是将编译得到的lib、bin分别拷到ARM的/usr/lib、/usr/bin。再将测试可执行文件拷到ARM,注意要改变其可执行权限。
注意SDL的运行时必须指定MOUSE设备.如使用tslib,则用如下命令设置SDL使用tslib.
$ export SDL_MOUSEDRV=TSLIB
如果没有任何输入设备,则环境变量 export SDL_NOMOUSE=1 ,否则初始化会提示:Couldn't initializeSDL:Unable to open mouse
接下来用SDL自带的testalpha来测试是否SDL下tslib是否正常工作.运行这个程序,如果在点击处准确出现黄色色块,表示tslib与SDL配合完合成功,以下是在320*240bpp=16的开发板的实测的截图.
5. SDL_image移植
有SDL本身所支持的仅仅是bmp格式的图片,要使用其他格式的图片就要使用其扩充库SDL_image,以下是编译过程:
$ cd ../SDL_image-1.2.8
$ ./autogen.sh
$ ./configure --prefix=/xyq/cross_compile/SDL --host= arm-linux –-enable-shared --build=i386 –-enable-static -–enable-bmp
-–enable-gif -–enable-jpg -–enable-png -–enable-tif -–enable-pnm -–enable-xpm –disbale-sdltest
SDL_CFLAGS=”-I/xyq/cross_compile/SDLnclude/SDL”
SDL_LIBS=”-L/xyq/cross_compile/SDL/lib -lSDL”
LIBPNG_CFLAGS="-I/xyq/cross_compile/SDL/include"
LIBPNG_LIBS="-L/xyq/cross_compile/SDL/lib-lpng" CPPFLAGS="-I/xyq/cross_compile/SDL/include"
LDFLAGS="-L/xyq/cross_compile/SDL/lib -ljpeg-lts -liconv"
$ make
$ make install
最新文章
- 【Arduino】旋转编码器的Arduino使用方法
- ubuntu包管理
- 图解JavaScript 继承
- 华为Mate8 NFC 时好时坏,怎么解决呢?
- 【转】SQL SERVER CLR存储过程实现
- LeetCode28 Implement strStr()
- pycharm中文乱码的问题
- TDD 实践过程
- POJ2240 Arbitrage(最短路)
- spring的Java配置入门(Spring Boot学习笔记之一)
- S2-045漏洞初步分析
- Exp9 Web安全基础
- oracle 任务备份
- c/cpp枚举练习
- python 多文件知识
- mysql视图 触发器 事物 函数 存储过程
- SSH命令详解2
- CentOS7防火墙firewall相关操作
- js计算器案例
- windows时间同步脚本
热门文章
- 【内功修炼】";裁员潮";,“中年危机”,该如何战胜你的焦虑
- Spark(四十八):Spark MetricsSystem信息收集过程分析
- 脸型分类-Face shape classification using Inception v3
- 海思uboot启动流程详细分析(转)
- Leetcode: 24 Game
- windows下安装node【转】
- Python3基础 函数 多值参数 元组与字典形式(键值对分别指出)
- Java中字符串操作的基本方法总结:
- DataWorks2.0——DataStudio简单对比使用上手
- 生成有目录的pdf