ARM-linux 移植 SDL

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

原文地址:https://www.cnblogs.com/schips/p/11525509.html

时间: 2024-10-12 10:14:39

ARM-linux 移植 SDL的相关文章

# arm linux 移植 curl

背景 libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 .libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies和用户认证. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 libcrul :7.69.1 主机准备 使用以下脚本 ## # Copyright By Schips, All Rights Reserv

linux移植问题汇总(一)

linux移植问题汇总(一) 在此记录移植linux过程中出现的问题以及解决方法. 项目GitHub地址 linux3.0.80:https://github.com/numbqq/linux-3.0.80_for_tiny210linux3.3.5:https://github.com/numbqq/linux-3.3.5_for_tiny210uboot2014.04:https://github.com/numbqq/uboot201404_for_tiny210 1.移植linux ke

ARM Linux从Bootloader、kernel到filesystem启动流程

转自:http://www.veryarm.com/1491.html ARM Linux启动流程大致为:bootloader ---->kernel---->root filesystem.bootloader 是一上电就拿到cpu 的控制权的,而bootloader实现了硬件的初始化.bootloader俨然就成了Power on 之后”第一个吃螃蟹”的代码. 谈到这就得想到硬件机制是如何满足这个功能的了.CPU内部一般都集成小容量的SRAM (又叫stapping stone,垫脚石),

linux移植u-boot(一)——U-Boot详解+自定义命令实战

linux移植u-boot(一)--U-Boot详解+自定义命令实战 2015-02-07 一.Bootloader ????简单地说:Bootloader主要功能就是 在系统上电时开始执行,初始化硬件和设备,准备好软件环境,最后调用操作系统. ????具体的包含:关闭你看门狗WATCHDOG,改变系统时钟,初始化存储控制器 ,将操作系统内核代码复制到内存中去运行. ????为了开发方便,可以增加网络功能,从PC上通过串口或者网络下载文件,烧写文件,将flash上的内核代码解压后运行等. Boo

arm上移植mplayer

关于mplayer移植网上资料很多,但都很混乱.在此,我做了一个关于mplayer 的详细总结.在做之前最好在解压源码包后,先通过./configure --help看一下相关配置. X86的LINUX上已经自带了解码库,不需要另外安装解码库,而arm平台自己做的文件系统没有解码库,需要另外安装解码库. 下载MPlayer:MPlayer-1.0rc2.tar.bz2        解码库:libmad-0.15.0b.tar.gz 一.在x86的LINUX上安装mplayer 1 #./con

学习ARM+Linux的很好的资料(转)

前段时间做了一个关于ARM9 2440资料的汇总帖,很高兴看到***和CSDN等论坛朋友们的支持和鼓励.当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友,耐心的回答我提出的问题.感激.图报,很简单的想法.希望这次整理的资料帖能对更多的嵌入式爱好者朋友带来帮助! PS:    在此特别感谢 古道热肠 版主把我的帖子加精,给小弟极大鼓舞! 嵌入式入门篇: 什么是嵌入式系统                         http://www.helloa

ARM Linux Qt 5.x.x 无标题栏

/********************************************************************************* * ARM Linux Qt 5.x.x 无标题栏 * 说明: * 以前Qt 4.x.x版本是直接有标题栏,但现在的Qt 5.x.x没有了标题栏,从参考文章里 * 可以看出,是需要另外移植窗口管理器的. * * 2017-1-6 深圳 南山平山村 曾剑锋 ***************************************

ARM+Linux 嵌入式开发环境搭建

这些都是自个从一月份开始学习ARM+Linux中遇到的问题做的笔记,我觉得很有用,所以分享出来! 因为没有老师教,自己琢磨遇到的问题很多,欢迎交流! -------------------------------------------------------------------------------------------------- 零点漂移队:封尘浪 ------------------------------------------------------------------

pcDuino的linux移植四简单驱动开发

开发环境系统:ubuntu 10.04.4单板:pcDuino(全志A10)编译器:arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 搭建开发环境详见ubuntu 10.04.4开发环境配置. 目标1.配置 编译linux-3.0.62内核,串口正常输出2.配置内核,支持nfs挂载,启动文件系统3.最简单内核驱动开发 这个是在pcDuino linux移植一.二.三的基础上写的,重点介绍内核驱动开发,其它具体移植过程不再

Linux移植之内核启动过程引导阶段分析

在Linux移植之make uImage编译过程分析中已经提到了uImage是一个压缩的包并且内含压缩程序,可以进行自解压.自解压完成之后内核代码从物理地址为0x30008000处开始运行.下面分析在进入C之前内核做的一些工作,以下是内核启动过程中打印出来的信息,其中Uncompressing Linux就是在自解压代码.make uImage编译的最后也给出了链接脚本arch/arm/kernel/vmlinux.lds,以及链接的顺序arch/arm/kernel/head.o 是第一个.