ref : https://blog.csdn.net/u012075739/article/details/24877639

 

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

最新文章

  1. 【Arduino】旋转编码器的Arduino使用方法
  2. ubuntu包管理
  3. 图解JavaScript 继承
  4. 华为Mate8 NFC 时好时坏,怎么解决呢?
  5. 【转】SQL SERVER CLR存储过程实现
  6. LeetCode28 Implement strStr()
  7. pycharm中文乱码的问题
  8. TDD 实践过程
  9. POJ2240 Arbitrage(最短路)
  10. spring的Java配置入门(Spring Boot学习笔记之一)
  11. S2-045漏洞初步分析
  12. Exp9 Web安全基础
  13. oracle 任务备份
  14. c/cpp枚举练习
  15. python 多文件知识
  16. mysql视图 触发器 事物 函数 存储过程
  17. SSH命令详解2
  18. CentOS7防火墙firewall相关操作
  19. js计算器案例
  20. windows时间同步脚本

热门文章

  1. 【内功修炼】"裁员潮",“中年危机”,该如何战胜你的焦虑
  2. Spark(四十八):Spark MetricsSystem信息收集过程分析
  3. 脸型分类-Face shape classification using Inception v3
  4. 海思uboot启动流程详细分析(转)
  5. Leetcode: 24 Game
  6. windows下安装node【转】
  7. Python3基础 函数 多值参数 元组与字典形式(键值对分别指出)
  8. Java中字符串操作的基本方法总结:
  9. DataWorks2.0——DataStudio简单对比使用上手
  10. 生成有目录的pdf