免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1118 | 回复: 0
打印 上一主题 下一主题

MINIGUI 1.6.2 在S3C2440 Linux 2.6.18.2 上移植 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-16 17:04 |只看该作者 |倒序浏览

MINIGUI 1.6.2 在S3C2440 Linux 2.6.18.2 上移植
在MINIGUI移植之前,先要做的是库的移植,因为MINIGUI需要很多库,并且这些库都不是GCC自带的,所以需要进行库的移植,在MINIGUI应用程序的开发的时候基本都是用动态链接,所以在目标板上运行的时候也是需要这些库文件的,所以这步工作很重要,接下来能不能成功关键是看库的移植能不能成功,这里介绍几个基本常用的库的移植。
一、ZLIB库的移植
这个库是接下来的基础,所以很重要。首先下载库的源文件
http://www.zlib.net/zlib-1.2.3.tar.gz
下载到/home/miniguilib里进行解压缩,由于ZLIB的configure脚本不支持交叉编译的设置,所以手动吧系统的GCC链接到交叉编译器的GCC上来,具体处理办法:
# mv gcc gcc_back
# ln -s /usr/local/arm/2.95.3/bin/arm-linux-gcc ./gcc
# mv ld ld_back
# ln -s /usr/local/arm/2.95.3/bin/arm-linux-ld ./ld
然后进入到ZLIB的目录进行configure配置Makefile:
./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ --shared
注:--prefix 一般都是安装目录或者是输出的路径配置,所以生成的库文件会被安装到/usr/local/arm/2.95.3/arm-linux/[lib,include]下面。
Make
Make install
完成zlib库的安装

二、PNG库的移植
老一套,先下载源文件再进行解压缩到/home/miniguilib下面,以下是下载地址
http://superb-east.dl.sourceforge.net/sourceforge/libpng/libpng-1.0.10rc1.tar.gz

由于LIBPNG没有提供configure 脚本,所以只能手动修改Makefile文件,先copy一个比较接近的Makefile 到源文件的目录下,cp scripts/makefile.linux Makefile ,接着手动修改Makefile,打开Makefile ,修改Makefile的地方有:
CC=arm-linux-gcc //这点是必须的,应该容易理解吧
Prefix=/usr/local/arm/2.95.3/arm-linux //设置其安装目录,在zlib中提过
ZLIBLIB = /usr/local/arm/2.95.3/arm-linux/lib   //指定lib的位置
ZLIBINC = /usr/local/arm/2.95.3/arm-linux/include //指定include的位置
修改好以后,保存Makefile ,接着就可以进行make 和 make install了,在以上指定的目录下应该可以看到生产的库文件了。

三、jpeg 库的移植
第一步还是原来的办法先下载再解压,目录都是统一的/home/miniguilib ,源文件的下载地址是:
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz

   进入JPEG目录,先进行configure的脚本配置,通过./configure –help 查看参数 ./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ CC=arm-linux-gcc --enable-shared --enable-static
--prefix 还是安装目录的配置
CC= 指定编译器的配置项
--enable-static –enable-shared 建立静态和动态库
安装前先建一个目录mkdir –p /usr/local/arm/2.95.3/arm-linux/man/man1
接着进行make 和 make install的工作。

四、libttf 库的移植
libttf 库是TrueType字体的支持库,当然可以支持也可以不支持,老一套,
http://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-1.3.1.tar.gz
这个库只能全手动安装和编译,先建立一个目录来存放其有用的或者说是我们所用到的库的源文件,mkdir –p /home/miniguilib/libttf/extend ,接下来进行copy 东西了:
cp freetype-1.3.1/lib/*  freetype-1.3.1/lib/arch/ansi/*  libttf/
cp freetype-1.3.1/lib/extend/*  libttf/extend/  
cp freetype-1.3.1/lib/*  freetype-1.3.1/lib/arch/ansi/*  libttf/
cd libttf
接下来编译文件
arm-linux-gcc -c -fPIC -O2 freetype.c         //不要奇怪,对,我们只要编译这一个 .c 文件,因为它包括了其它所有的 .c 文件了
arm-linux-gcc -c -fPIC -O2 -I./  extend/*.c   把 extend 下所有的 .c 文件全部编译
arm-linux-gcc --shared -o libttf.so *.o    生成最后的动态链接库,OK了
cp libttf.so  /usr/local/arm/2.95.3/arm-linux/lib
完成这一步基本库都已经完成,接下来才是进入到minigui的移植阶段。
MINIGUI库文件移植
    这个移植起来就方便了,毕竟是我们国家的东西啊,不管怎么说都是好的。步骤很简单先下载解压,接着跟着做就可以了,下载libminigui-str-1.6.2
先修改configure文件:
CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
CPP=/usr/local/arm/2.95.3/bin/cpp
LD=/usr/local/arm/2.95.3/bin/arm-linux-ld
AR=/usr/local/arm/2.95.3/bin/arm-linux-ar
RANLIB=/usr/local/arm/2.95.3/bin/arm-linux-ranlib
STRIP=/usr/local/arm/2.95.3/bin/arm-linux-strip
./configure --host=arm-linux --enable-jpgsupport=yes --enable-pngsupport=yes --enable-gifsupport=yes --disable-lite --prefix=/usr/local/arm/2.95.3/arm-linux --enable-smdk2410ial=yes
这些参数都可以查的到在./configure –help
Make
Make install
MINIGUI资源文件的移植
安装MiniGUI资源,这些资源包括基本字体、图标、位图和鼠标光标等等。解压minigui-res- 1.6.tar.gz(ar zxf minigui-res-1.6.tar.gz),进入生成目录,修改configure.linux文件,指明TOPDIR= /minigui/miniguitmp
执行
make install
就可以把相关文件拷贝到/minigui/miniguitmp/目录下的相关目录中去。
执行后会在/minigui/miniguitmp/ 下生成usr/local/lib/minigui/res 相关目录
带MINIGUI的文件系统的制作
    这是很关键的一步,能不能跑起来这里起来这里是关键。
第一步确认内核有没有打开FrameBuffer的LCD驱动的支持。
第二步COPY文件
将/usr/local/arm/2.95.3/arm-linux/lib中相关的库文件复制到rootfs的/usr/lib 中,将 /minigui/miniguitmp/usr/local/lib/minigui目录复制到root_minigui的/usr/lib目录中,修改/minigui/miniguitmp/etc/MiniGUI.cfg文件,
找到
ial_engine=console
mdev=/dev/mouse
改为
ial_engine=SMDK2410
mdev=/dev/ts
然后保存退出。
把/minigui/miniguitmp/etc/MiniGUI.cfg文件复制到/rootfs/usr/local/目录中。在以后的运行中和你建立的文件系统本身有很大的关系,比如lib的path设置啊,所以有的时候会发生找不到库的情况,这时候就需要修改你的/usr/lib放的路径了或者添加LIB库的路径。有的时候发生资源文件找不到或者LOAD失败,那就应该去找MiniGUI.cfg的问题了,看看路径对不对,很关键,以后minigui运行基本都是从这个文件里读取配置信息的,只有这个配置信息都正确的情况下才能够正常的运行MINIGUI的应用程序。移植已经算基本完成了,关于官方提供的例子的移植应该很容易的。接下来要做的事情就应该好好看看官方提供的手册了,那才关键所在。
相关的库文件
libjpeg.la               libminigui-1.6.so.2.0.0  libpopt.so
libjpeg.so               libminigui.a             libpopt.so.0
libjpeg.so.62            libminigui.la            libpopt.so.0.0.0
libjpeg.so.62.0.0        libminigui.so            libttf.so
libm-2.2.3.so            libpng.so                libz.so
libm.so                  libpng.so.2              libz.so.1
libm.so.6                libpng.so.2.1.0.10rc1    libz.so.1.2.3
libminigui-1.6.so.2      libpopt.la               minigui



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/72877/showart_1083580.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP