(未完成)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
(未完成)ARM-linux 移植 SDL的更多相关文章
- arm linux 移植 x265
背景 本来想着把 x265编译到ffmpeg里面,搞定了x265的编译:但是一直报ERROR: x265 not found using pkg-config这个错误,我按照网上的资料,查看了ffbu ...
- Linux 安装 go 以及 arm linux 移植 go
背景 Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. 从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码 ...
- arm linux 移植 MQTT (paho、mosquitto)
前言 我们在这里做2件事情: 1)编译 paho.mqtt.mosquitto 2个开源项目的c版本库(mosquitto库没有用上) 2)编译好 依赖 paho.mqtt的库编写例程 + mosqu ...
- arm linux 移植 ffmpeg 库 + x264
背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...
- arm linux 移植 PHP
背景: PHP 是世界上最好的语言. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 php :7.1.30 zlib :1.2.11 libxml ...
- arm linux 移植支持 HP打印机
背景 由于业务需要,需要hi3531d主板上加入对于HP打印机的支持. 通过与产品经理,技术主管的沟通:通用支持是不现实的,只要求彩色打印,先不考虑打印机的价格,只要支持一款打印机即可. 注意: Li ...
- arm linux 移植 gdb/gdbserver
背景 调试工具gdb的使用对于嵌入式Linux开发人员来说是一项不可少的技能. 目前,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机 ...
- arm linux 移植 udhcp 与 使用
背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...
- arm linux 移植 rsync
背景: 在产品开发中可以使用rsync进行大文件的拷贝,断点续传. host平台 :Ubuntu 16.04 arm平台 : 3531d rsync :3.1.3 arm-gcc :4.9.4 ...
随机推荐
- PCR | RT-PCR 的原理及应用
生物的东西必须要主动去了解,否则视野容易受到限制,尤其是分子生物学的核心技术. PCR - 聚合酶链式反应 The Complete Guide to PCR (How it Works, Prime ...
- 更换python版本后出现 No module named "apt_pkg"
本文链接:https://blog.csdn.net/jaket5219999/article/details/78464310 $ sudo apt-get remove --purge pytho ...
- Hiberfil.sys
Hiberfil.sys 命令窗口中输入 powercfg -h off,即可关闭休眠功能,同时 Hiberfil.sys 文件也会自动删除.
- Tosca 添加插件或者是扩展功能,把页面上某块内容识别成table
#遇到了问题 "ICS table was not found" 是因为编辑case的时候用到了插件的功能, 但是setting里面却没有配置这个插件 #在哪里添加插件 #目的 这 ...
- ROS tf广播编写
博客参考:https://www.ncnynl.com/archives/201702/1310.html ROS与C++入门教程-tf-编写tf broadcaster(广播) 说明: 介绍如何广播 ...
- RestSHarp
异步扩展: public static class RestClientExtensions { private static Task<T> SelectAsync<T>(t ...
- 泡泡一分钟:Fast and Robust Initialization for Visual-Inertial SLAM
张宁 Fast and Robust Initialization for Visual-Inertial SLAM链接:https://pan.baidu.com/s/1cdkuHdkSi9x7l ...
- Android开发之高仿微信图片选择器
记得刚开始做Andriod项目那会,经常会碰到一些上传图片的功能需求,特别是社交类的app,比如用户头像,说说配图,商品配图等功能都需要让我们到系统相册去选取图片,但官方却没有提供可以选取多张图片的相 ...
- NETTY 心跳机制
最近工作比较忙,但闲暇之余还是看了阿里的冯家春(fengjiachun)的github上的开源代码Jupiter,写的RPC框架让我感叹人外有人,废话不多说,下面的代码全部截取自Jupiter,写了一 ...
- [转]Connecting To SQLite Database Using Node.js
原文链接:http://www.sqlitetutorial.net/sqlite-nodejs/connect/