访问网站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
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
当前的运行状态,执行时有问题如下:
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)
#!/bin/bash
rm config.cache config.status -f
CC=arm-softfloat-linux-gnu-gcc \
./configure --prefix=/usr/local/minigui/ \
--shared
#!/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/
#!/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
很遗憾没有安装成功
#!/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
#!/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
自己写了个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
[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
资源文件的配置,目前直接修改代码中的路径,还没有统一起来。当第一次执行的时候,应用程序也使用自己的资源,图片路径不对导致程序无法执行下去。
将编译的ctrl_dlg复制到根文件系统,启动 linux内核,通过NFS加载根文件系统,执行ctrl_dlg,可以看到一个很好的界面,但是只有LCD,需要有其他的驱动,如键盘或者触摸屏或者再增加其他附加的功能。
启动过程中的进度条没有显示,需调试;
键盘,触摸屏其他的驱动架上去