免费注册 查看新帖 |

Chinaunix

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

minigui的arm+linux移植 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-30 14:19 |只看该作者 |倒序浏览

今天完成了minigui的arm+linux移植,做如下总结:
源码包:
libminigui-1.6.2-linux.tar.gz  //用于生成库文件
           mde-1.6.0.tar.gz           //演示程序
           minigui-res-1.6.tar.gz       //资源包,运行时需要用到的图片和字体等
补充文件:
              libpng 的库
              libpng12的库
              libm 的库
              libz 的库
              libpopt的库
              libjpeg的库         
编译器:
             arm-linux-3.3.2

minigui有三种运行模式,分别是thread lite standalone ,我编译了两种模式thread 和lite ,thread模式中每个程序都可以单独运行,是默认的运行模式.lite模式是基于客户端/服务器的模式,要先运行服务端的mginit程序后才能执行其他程序.二者编译上的区别主要在configure参数的选择,这里介绍lite模式的编译.

第一步: 编译库文件
1)      tar zxvf libminigui-1.6.2-linux.tar.gz 生成libminigui-1.6.2-linux目录.
2)      进入目录执行
make clean    //包里面如有编译过,生成的中间文件会影响到后面的编译
./configure --host=arm-linux --enable-lite \
--disable-imegb2312py --disable-imegb2312 \
--prefix=(设定一个安装路径,假设为: /usr/local/minigui)
//这里--disable-imegb2312py --disable-imegb2312两个选项屏蔽了输入法的选择,输入法在此版本中出现不兼容的现象,mginit程序一启动就自动退出了.
make
make install
3)      安装目录下生成了3个文件夹:
etc          //里面的MiniGUI.cfg是minigui的配置文件
lib           //相关的库文件
include  //编译演示程序要用到的头文件
4) lib目录下的库文件包含了大量的调试信息,用arm-linux-strip命令将多余的信息剥去 arm-linux-strip /lib/*

第二步:编译演示程序
1)      tar xvf mde-1.6.0.tar.gz 生成mde-1.6.0目录
2)      进入目录修改configure.in文件加入:
CFLAGS="$CFLAGS -I /usr/local/minigui/include -L /usr/local/minigui /lib"
即加入头文件和库的路径
3) 执行
       ./configure --host=arm-linux --prefix=/usr/local/minigui
//此处的路径与前面的安装路径要一致
make
这个目录里做make install 将不会执行任何操作,所以要手动把各个目录下的执行命令和res目录拷出来.我把这些命令arm-linux-strip 后统一放到了minigui的安装目录下新建的sample目录下,并且保持每个程序和相应的res目录都放在与执行程序同名的文件夹下,mginit目录下还要拷入mginit.rc文件,此文件中限定了执行程序的目录结构.

第三步:安装资源文件
1)      tar zxvf minigui-res-1.6.tar.gz生成minigui-res-1.6目录
2)      修改configre.linux中的prefix路径为前面两步的安装路径,CC=arm-linux-gcc AR=arm-linux-ar
3)      make install

第四步:移植
1)      将安装目录的etc目录下的MiniGUI.cfg文件做如下修改:
fbcon的显示模式改为800x600,因为我使用的板子上的framebuffer驱动里已经设置了显示模式为800x600要通过vgaout在显示器上显示. mtype的路径改到/dev/input/mouse0这两项都要根据具体的情况来修改.改好后将此文件放到板子的/etc目录下.
2)      将lib目录下的库文件放到/usr/lib目录下,将lib/minigui目录放到/usr/local/lib下,程序启动时会到/usr/lib目录下寻找相关的库,而资源文件的位置/usr/local/lib是在MiniGUI.cfg中指定的,可以修改.
3)      /usr/lib目录下还需要放入上面列出的补充库文件,这些库在程序运行时会需要用到,每一个库可以在网上下到源码包自己交叉编译生成库文件后拷入板子的/usr/lib目录下,拷入之前最好先做个arm-linux-strip可以大大减小文件的体积.我使用的编译服务器上已经有了交叉编译好的这些库,所以我只是将它们拷下来用就可以了.
4)      将演示程序放到板子的任意位置,比如/usr/local/minigui/sample保持目录结构不变
5)      进入mginit目录(注意,启动mginit程序必须进入到mginit程序放置的目录中,并且其相关的res文件夹要与mginit程序放在同一个目录下,因为mginit启动时会在当前目录下寻找资源文件,如果找不到,程序一启动就会自动退出)后台运行mginit程序 ./mginit & ,配置无误,一切正常的话,应该出现程序一个窗口界面,再到别的目录下去运行程序会在窗口中弹出运行程序的界面,这一步由于输入法的不兼容.一直出现mginit一启动就崩溃的现象,后来在程序中将一处输入法的相关函数注释掉才解决问题,不使用输入法应该有三种方法,一是在程序中注释掉相关程序,一是修改由前面库源码包生成的include/minigui/config.h文件,将其中输入法的定义去掉,一是在做库和头文件的生成的时候在configure中用参数将输入法屏蔽,最后一种方法才是正当途径J
至此minigui移植成功,其间会遇到的一些问题可以查看minigui的用户手册或在网上搜到相关的答案,minigui的移植已经比较成熟了.


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP