在移植游戏之前, 我们首先需要将 SDL/SDL_mixer/SDL_ttf/SDL_image 这四个库移植到 Tiny6410 上, 另外还需要 iconv 库。

libiconv-1.13.1.tar.gz Iconv 库 下载:http://ftp.gnu.org/pub/gnu/libiconv/
SDL-1.2.14.tar.gz SDL 库 http://www.libsdl.org/download-1.2.php
SDL_image-1.2.8.tar.gz SDL_image 库 http://www.libsdl.org/projects/SDL_image/release/
SDL_ttf-2.0.9.tar.gz SDL_ttf 库 http://www.libsdl.org/projects/SDL_ttf/release/
SDL_mixer-1.2.9.tar.gz SDL_mixer 库 http://www.libsdl.org/projects/SDL_mixer/release/

在 /opt/mini6410 目录下创建目录 games 来作为我们本次移植工作的工作目录,输入以下命令创建:

# mkdir –p /opt/mini6410/games

再在 games 目录下创建一个 output 目录,用来存放编译生成的可执行文件或者类库等:

# cd /opt/mini6410/games
# mkdir output

编译iconv库

# tar xvzf /tmp/libiconv-1.13..tar.gz
# cd libiconv-1.13.
# ./configure --host=arm-linux --prefix=/opt/mini6410/games/output
# make
# make install

编译SDL库

# cd /opt/mini6410/games
# tar xvzf /tmp/SDL-1.2..tar.gz
# cd SDL-1.2.
# ./configure --prefix=/opt/mini6410/games/output \
--disable-video-nanox -disable-video-qtopia \
--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 --host=arm-linux --build=i386
# make
# make install

编译SDL_image库

# cd /opt/mini6410/games
# tar xvzf /tmp/SDL_image-1.2..tar.gz
# cd SDL_image-1.2.
# ./configure --enable-shared --enable-static --host=arm-linux --build=i386 \
--prefix=/opt/mini6410/games/output --enable-bmp --enable-gif --enable-jpg \
--enable-png --enable-tif --enable-pnm --enable-xpm \
--disable-sdltest SDL_CFLAGS="-I/opt/mini6410/games/output/include" \
SDL_LIBS="-L/opt/mini6410/games/output/lib -lSDL" \
LIBPNG_CFLAGS="-I/opt/mini6410/games/output/include" \
LIBPNG_LIBS="-L/opt/mini6410/games/output/lib -lpng" \
CPPFLAGS="-I/opt/mini6410/games/output/include/SDL -I/opt/mini6410/games/output/include/" \
LDFLAGS="-L/opt/mini6410/games/output/lib -ljpeg -lts -lpng -liconv"
# make
# make install

在这里会提示报错信息

checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.

打开config.log文件会在在最低部看到出错的地方 这里我们安装这几个库就行了

apt-get install libjpeg-dev
apt-get install libts-dev
apt-get install libpng-dev

编译SDL_ttf库

# cd /opt/mini6410/games
# tar xvzf /tmp/SDL_ttf-2.0..tar.gz
# cd SDL_ttf-2.0.
# ./configure --host=arm-linux --prefix=/opt/mini6410/games/output \
--enable-shared --enable-static --disable-sdltest \
--with-freetype-prefix=/opt/FriendlyARM/toolschain/4.5./arm-none-linux-gnueabi/sys-root/usr/ \
--with-sdl-prefix=/opt/mini6410/games/output/ CFLAG="-I/opt/mini6410/games/output/include" \
LDFLAGS="-L/opt/mini6410/games/output/lib -lSDL -lts -liconv -lfreetype"

和上一个一样在编译的时候也会报错  安装库

apt-get install libSDL-dev
apt-get install libfreetype6-dev

在编译之前手工修改 Makefile,去掉 OpenGL 相关处理:

# vi Makefile

定位到 123 行,将以下内容中的“-I/usr/include -DHAVE_OPENGL”删除(红色字体部分):
CFLAGS = -g -O2 -I/usr/include/freetype2 -I/opt/mini6410/games/output/include/SDL
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -DHAVE_OPENGL
再定位到 143 行,将:
GL_LIBS = -L/usr/lib -lGL
改成
GL_LIBS =
再定位到 266 行,将:
glfont_LDADD = libSDL_ttf.la -L/usr/lib -lGL -lm
改成
glfont_LDADD = libSDL_ttf.la -lm
清空源代码文件 glfont.c 中的源代码 (先删除,再用 vi 创建):
# rm glfont.c.-f
# vi glfont.c
在 vi 编辑器中输入以下内容并保存:
void main() {}

最好, 输入命令编译并安装:
# make
# make install

移植SDL运行库到Tiny6410 上的更多相关文章

  1. xampp打开显示缺少运行库的解决方法

    如图:,安装好xampp的时候直接打开会弹出上面那个错误,显示的原因是因为缺少运行库,点击"确定"之后会弹出一个网页,上面有解决方法:http://www.phpstudy.net ...

  2. phpStudy启动失败时的解决方法 提示缺vc9运行库

    问题描述: 问题产生原因分析: php5.3.5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行. php5.5.5.6是vc11编译,如用php5.5.5.6必须安装vc11运行 ...

  3. 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏

    制作运行库 由于ubuntu的Qt运行库在/usr/local/Trolltech/Qt-4.7.3/下,由makefile可以看到引用运行库是 INCPATH = -I/usr//mkspecs/d ...

  4. 在HI3531上移植和运行QT4.8.6

    在HI3531上移植和运行QT4.8.6 1.            前言: 近段有点时间,想把QT移植到HI3531上,在网上查找了很多资料,但都不是很全面,有些有问题也没有得到很好的体现. 2.  ...

  5. 【开发实录】在鸿蒙开发板上使用websocket(移植自librws库)

    librws: Tiny, cross platform websocket client C library 相关代码可在下面下载,也可进入librws: 将librws移植到鸿蒙Hi_3861开发 ...

  6. c运行库、c标准库、windows API的区别和联系

    C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的.  API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的 ...

  7. (转)c运行库、c标准库、windows API的区别和联系

    C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的.  API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的 ...

  8. Windows 常用运行库下载 (DirectX、VC++、.Net Framework等)

    经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9_xx.dll 或 msvcp71.dll.msvcr71.dll又或者是 .Net Framework 初始化之类的错误而无法正常 ...

  9. CLR 公共语言运行库

    1..支持多语言..只是语言是面向CLR的..均可以在此基础上运行. 2..程序集加载..程序打包之后的Dll文件由CLR(公共语言运行库)来编译并加载到可以执行状态..由CLR(公共语言运行库)加载 ...

随机推荐

  1. SharePoint2010升级到SharePoint2013操作手册

    SharePoint2010升级到SharePoint2013操作手册 目 录 第一章 前言    3 第二章 升级前准备    3 第三章 升级流程图    5 第四章 升级过程    5 4.1 ...

  2. Mac下载安装Android Studio教程

    今天把公司闲置的一台Mac-mini重装了下系统感觉用着速度还不错,平时上班用的机器USB有些问题,所以打算用这台Mac.以往开发用Intellij Idea就够用,但是这次项目引用的jar包太多,遭 ...

  3. 【转】Serverless架构

    这是来自martinfowler.com的Serverless架构一文的大意翻译. 什么是Serverless?    Serverless首先是用于描述我们的应用程序是明显或充分地依赖第三方应用或服 ...

  4. php示例代码之使用list函数和mysql_fetch_row函数

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  5. github代码上传之命令提交

    Git GUI的用法比较简单,随便弄弄就可以将本地git库中的代码提交到远端github服务器,所以想把Git bash这玩意儿的操作流程快速过一遍,主要是做个笔记,以后忘记了可以看看怎么操作的. 首 ...

  6. 集合迭代器快速失败行为及CopyOnWriteArrayList

    以下内容基于jdk1.7.0_79源码: 什么是集合迭代器快速失败行为 以ArrayList为例,在多线程并发情况下,如果有一个线程在修改ArrayList集合的结构(插入.移除...),而另一个线程 ...

  7. Percona XtraBackup User Manual 阅读笔记

    XtraBackup XtraBackup 2 安装XtraBackup 2.1 安装XtraBackup binary版本 2.1.1 yum的安装方法: 2.1.2 直接下载rpm包安装 3 Xt ...

  8. MongoDB学习笔记——Replica Set副本集

    副本集 可以将MongoDB中的副本集看作一组服务器集群由一个主节点和多个副本节点等组成,相对于之前讲到的主从复制提供了故障自动转移的功能 副本集实现数据同步的方式依赖于local数据库中的oplog ...

  9. 10个开源的PHP网站内容管理系统

    1. DEDE -这是一款国内开源的cms,作者是一个个人,能做出如此功能的cms,是相当不错的.2007版功能十分强大,希望能改善之前数据量一大,更新静态页就很慢的缺点.因为开源,有较多的玩家和拥护 ...

  10. android 中Activity的onStart()和onResume()的区别是什么

    首先你要知道Activity的四种状态:Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态.Paused 当 Ac ...