Minigui-gpl-3.0移植文档

Minigui-gpl-3.0移植文档

一.      源代码下载

访问网站http://www.minigui.org/downloads/index.html下载所需的源代码,我所下载的源代码如下:

libminigui-gpl-3.0.12                 //核心代码库

minigui-res-be-3.0.12                 //资源文件

libmgplus-1.2.4                      //增强功能

mg-samples-3.0.12                    // 示例代码

zlib-1.2.2

jpeg-7

libpng-1.2.37

freetype-1.3.1

qvfb2-2.0                           //基于QT,编过但是无法运行

gvfb-1.0.0                           //基于GTK

二.      软件安装

1安装qvfb2-2.0(该部分参考网络文档)

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

当前的运行状态,执行时有问题如下:

QInputContext: no input method context available -------------------通过4)解决

QInputContext: no input method context available

oops:client1 : No such file or directory          -------------------未知

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

./configure

出错:checking for Qt... configure: error: Qt (>= Qt 3.3) (headers and libraries) not found. Please check your installation!

For more details about this problem, look at the end of config.log.

解决方式:

1)查找config.log里有关qt的内容

[root@localhost **]# cat config.log | grep qt

可以看到configure在寻找qt3里的headers and libraries ,但没有找到,到/usr/lib里一看才知道,原来是文件夹名字不一致,不是qt而是qt-3.0.3,于是给configure加上参数,指定目录./configure --prefix=/usr --with-qt-dir=/usr/lib/qt-3.0.3/ --with-qt-includes=/usr/lib/qt-3.0.3/include/ --with-qt-libraries=/usr/lib/qt-3.0.3/lib

重新configure

make

make install]

不成功!!

    2)到/usr/lib查看,看到qt目录原来的结构

includes  /usr/include/qt3/*.h 

lib/usr/lib/qt3/plugins/

而新结构要求

includes  /usr/lib/qt3/include

lib/usr/lib/qt3/lib

解决方法,新建:mkdir /usr/lib/qt3/lib

      mkdir /usr/lib/qt3/include

 把原结构当中的文件拷贝到新结构当中

cp -r /usr/include/qt3/* /usr/lib/qt3/include

cp -r /usr/lib/qt3/plugins/*.so /usr/lib/qt3/lib

qvfb下面./configure时用./configure --prefix=/usr/local --with-qt-dir=/usr/lib/qt3/ --with-qt-includes=/usr/lib/qt3/include/ --with-qt-libraries=/usr/lib/qt3/lib

3)运行qvfb

出现的问题:X Error: BadDevice, invalid or uninitialized input device 169

  Extension:    148 (XInputExtension)

  Minor opcode: 3 (X_OpenDevice)

  Resource id:  0x0

Failed to open device

  解决的方法:

编辑: /et c/X11/xorg.conf

注释掉以下几行:

 

#Section "InputDevice"

#    Driver        "wacom"

#    Identifier    "stylus"

#    Option        "Device"    "/dev/input/wacom"

#    Option        "Type"    "stylus"

#    Option        "ForceDevice"    "ISDV4"# Tablet PC ONLY

#EndSection

 

#Section "InputDevice"

#    Driver        "wacom"

#    Identifier    "eraser"

#    Option        "Device"    "/dev/input/wacom"

#    Option        "Type"    "eraser"

#    Option        "ForceDevice"    "ISDV4"# Tablet PC ONLY

#EndSection

 

#Section "InputDevice"

#    Driver        "wacom"

#    Identifier    "cursor"

#    Option        "Device"    "/dev/input/wacom"

#    Option        "Type"    "cursor"

#    Option        "ForceDevice"    "ISDV4"# Tablet PC ONLY

#EndSection

 

 

 

Section "ServerLayout"

    Identifier    "Default Layout"

  screen "Default Screen"

    Inputdevice    "Generic Keyboard"

    Inputdevice    "Configured Mouse"

#    Inputdevice    "stylus"    "SendCoreEvents"

#    Inputdevice    "cursor"    "SendCoreEvents"

#    Inputdevice    "eraser"    "SendCoreEvents"

    Inputdevice    "Synaptics Touchpad"

EndSection

4)输入法问题

QInputContext: no input method context available

Export QT_IM_MODULE="scim"

5)库问题,出现的现象记不清了

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

6

2.安装ZLIB

#!/bin/bash

rm config.cache config.status -f

CC=arm-softfloat-linux-gnu-gcc \

./configure --prefix=/usr/local/minigui/ \

--shared

 

3.安装PNG

#!/bin/bash

rm config.cache config.status -f

CC=arm-softfloat-linux-gnu-gcc \

ZLIBLIB=/usr/local/minigui/lib/ \

ZLIBINC=/usr/local/minigui/include/ \

./configure --prefix=/usr/local/minigui/ \

--build=i686-pc-linux-gnu \

--host=arm-unknown-linux \

--target=arm-unknown-linux

#ZLIBLIB=/usr/local/minigui/lib/ \

#ZLIBINC=/usr/local/minigui/include/

4.安装JPEG

#!/bin/bash

rm config.cache config.status -f

CC=arm-softfloat-linux-gnu-gcc \

./configure --prefix=/usr/local/minigui/ \

--build=i686-pc-linux-gnu \

--host=arm-unknown-linux \

--target=arm-unknown-linux

 

5.安装freetype

很遗憾没有安装成功

 

6.安装Minigui3.0

#!/bin/bash

rm config.cache config.status -f

CC=arm-softfloat-linux-gnu-gcc \

./configure --prefix=/usr/local/minigui/ \

--build=i686-pc-linux-gnu \

--host=arm-unknown-linux \

--target=arm-unknown-linux

 

minigui 下的目录下configure文件具有许多的配置项,举例如下:

……

with_flat_lf="yes"

with_skin_lf="yes"

……

/etc 目录下有配置文件MiniGUI.cfg

7.安装libmgplus

#!/bin/bash

rm config.cache config.status -f

CC=arm-softfloat-linux-gnu-gcc \

CXX=arm-softfloat-linux-gnu-g++ \

ac_ct_CXX=arm-softfloat-linux-gnu-g++ \

MINIGUI_CFLAGS=-I/usr/local/minigui/include \

CPPFLAGS=-I/usr/local/minigui/include \                  MINIGUI_LIBS=-L/usr/local/minigui/lib-lminigui_ths-ljpeg-lpng-ldl-lm-lpthread \

./configure --prefix=/usr/local/minigui/ \

--build=i686-pc-linux-gnu \

--host=arm-unknown-linux \

--target=arm-unknown-linux

 

附:LIBS=/usr/local/lib 应为 LIBS=-L/usr/local/lib 否则cant executable  ./configure

  或者NO SUCH FILE OR DIRECTORY

8.编译示例代码ctrl_dlg

自己写了个makefile

 

CC=arm-softfloat-linux-gnu-gcc

CPP=arm-softfloat-linux-gnu-gcc

ac_ct_CC=arm-softfloat-linux-gnu-gcc

LIBS=/usr/local/minigui/lib

#MINIGUI_CFLAGS=/usr/local/minigui/include       error:cant create executables

#CPPFLAGS=/usr/local/minigui/include

#MINIGUI_LIBS=/usr/local/minigui/lib

MINIGUI_CFLAGS=-I/usr/local/minigui/include

CPPFLAGS=-I/usr/local/minigui/include

MINIGUI_LIBS=-L/usr/local/minigui/lib -lminigui_ths -ljpeg -ldl -lm -lpthread

 

#-lpng

ctrl_dlg_inc=ctrls.h  dlgdemo.h  dlgdemo_res_cn.h  dlgdemo_res_en.h  dlgdemo_res_tw.h  resouce.h

ctrl_dlg_obj=dlgdemo.o dlgres.o psdemo.o subclass.o \

        static.o button.o edit.o listbox.o combobox.o \

              menubutton.o toolbar.o trackbar.o progbar.o \

        monthcalendar.o treeview.o listview.o coolbar.o \

              timeedit.o newtoolbar.o

 

ctrl_dlg:$(ctrl_dlg_obj)

       $(CC) -o ctrl_dlg $(CPPFLAGS) $(MINIGUI_LIBS) $(ctrl_dlg_obj)

 

dlgdemo.o:dlgdemo.c $(ctrl_dlg_inc)

dlgres.o:dlgres.c $(ctrl_dlg_inc)

psdemo.o:psdemo.c $(ctrl_dlg_inc)

subclass.o:subclass.c $(ctrl_dlg_inc)

static.o: static.c $(ctrl_dlg_inc)

button.o:button.c $(ctrl_dlg_inc)

edit.o:edit.c $(ctrl_dlg_inc)

listbox.o:listbox.c $(ctrl_dlg_inc)

combobox.o:combobox.c $(ctrl_dlg_inc)

menubutton.o:menubutton.c $(ctrl_dlg_inc)

toolbar.o:toolbar.c $(ctrl_dlg_inc)

trackbar.o:trackbar.c $(ctrl_dlg_inc)

progbar.o:progbar.c $(ctrl_dlg_inc)

monthcalendar.o:monthcalendar.c $(ctrl_dlg_inc)

treeview.o:treeview.c $(ctrl_dlg_inc)

listview.o:listview.c $(ctrl_dlg_inc)

coolbar.o:coolbar.c $(ctrl_dlg_inc)

timeedit.o:timeedit.c $(ctrl_dlg_inc)

newtoolbar.o:newtoolbar.c $(ctrl_dlg_inc)

#grid.o:grid.c $(ctrl_dlg_inc)

 

.PHONY : clean

clean :

       rm ctlr_dlg $(ctrl_dlg_obj)

 

三.      将编译的文件库复制到根文件系统

/etc         ----------------     minigui.cfg

/usr/lib      ----------------     /minigui/lib

 

1修改部分MiniGUI.cfg的配置

[system]

# GAL engine and default options

gal_engine=fbcon  #pc_xvfb

defaultmode=320x240-16bpp  #800x600-16bpp

 

# IAL engine

ial_engine= console #pc_xvfb

mdev=/dev/input/mice

mtype=IMPS2

 

[fbcon]

defaultmode=320x240-16bpp #1024x768-16bpp

 

[qvfb]

defaultmode=320x240-16bpp #640x480-16bpp

display=0

2 资源文件的配置

资源文件的配置,目前直接修改代码中的路径,还没有统一起来。当第一次执行的时候,应用程序也使用自己的资源,图片路径不对导致程序无法执行下去。

四运行开发板上的任务

将编译的ctrl_dlg复制到根文件系统,启动 linux内核,通过NFS加载根文件系统,执行ctrl_dlg,可以看到一个很好的界面,但是只有LCD,需要有其他的驱动,如键盘或者触摸屏或者再增加其他附加的功能。

五接下来的任务

1. 原有的问题

启动过程中的进度条没有显示,需调试;

2.后续的工作

键盘,触摸屏其他的驱动架上去

 

你可能感兴趣的:(minigui)