MiniGUI--ubuntu16下安装配置MiniGUI 3.2.0

ARM 297浏览


操作系统:Ubuntu Kylin 16.04 x86
MiniGUI版本:3.2.0

最近一直再搞这个东西,要配置的库真的是太多了。从README帮助文档可以看到3.2.0支持架构有x86 32/64-bit, ARM 32/64-bit (e.g., ARMv7 and ARM Cortex-A7), PowerPC, MIPS, DragonBall, ColdFire, Blackfin, and so on.3.0.12支持的架构有Intel x86, ARM (ARM7/AMR9/StrongARM/xScale), PowerPC, MIPS, DragonBall, ColdFire, Blackfin, and so on.由于后期要在开发板上开发,而芯片内核是Cortex-A8 ARMv7架构,所以我选用了3.2.0版本的,先在ubuntu上面搭建好开发环境,其他的之后再说。头疼的是3.2.0版本网上相关的配置教程基本没有,毕竟7月份才发布,搞的过程中也是秉承着程序员第一玄学–跑跑看的精神,参考网上的3.0.12的配置教程,最后能够运行基本示例还是很开心的!

下载文件

下载地址: http://www.minigui.com/en/download/
在这里插入图片描述
这里的库都要下载下来!然后全部解压。

安装工具和依赖库

安装前准备:

sudo apt install libgtk2.0-dev libjpeg-dev libpng12-dev libfreetype6-dev libsqlite3-dev libxml2-dev  //依赖的库
sudo apt install build-essential    //包含许多基本库

1.安装zlib-1.2.2(libpng基于zlib)

进入该目录下,执行./configure --help可以得到可配置选项,常用的有:

  • –prefix=PREFIX:定义安装依赖文件的路径,默认[/usr/local]
  • –host=HOST:程序运行主机,在ARM运行的话要修改
  • –enable-shared[=PKGS]:编译生成共享库(动态库)
  • –enable-static[=PKGS]:编译生成静态库

配置过程(默认配置就行)

./configure
make && sudo make install

2.安装jpeg-7、libpng-1.2.37、freetype-2.3.9-fm20100818

./configure
make && sudo make install

3.安装gvfb-1.2.1 [fail]

进入该目录,查看README.md可以看到:

cmake .
make
sudo make install

执行的时候遇到了如下问题,没解决掉  ̄へ ̄
在这里插入图片描述
gvfb和qvfb属于framebuffer图像引擎,gvfb安装不成功我就换了qvfb。

4.安装qvfb2-2.0 [success]

下载地址: http://www.minigui.com/en/download/
在这里插入图片描述
可以看到qvfb2是基于Qt的,安装过程如下:

./configure 时需要qt3的库,解决办法:
sudo vi /etc/apt/sources.list 添加包含libqt3的库,
deb http://cz.archive.ubuntu.com/ubuntu precise main
添加完后
sudo apt-get update 更新库
这时安装 sudo apt-get install libqt3-mt 库,提示依赖库没有被包含
sudo apt-get -f install 包含依赖的库

sudo apt-get install libqt3-mt
sudo apt-get install libqt3-mt-dev
然后
./configure
make && make install
安装完毕,参考网址在这里

接下来需要修改配置文件MiniGUI.cfg(参考README)
#vi /usr/local/etc/MiniGUI.cfg

[system]
#GAL engine and default options   
gal_engine=pc_xvfb  #指定使用的图像引擎
defaultmode=800x600-16bpp
# IAL engine
ial_engine=pc_xvfb  #输入引擎IAL
mdev=/dev/input/mice
mtype=IMPS2

[pc_xvfb]
defaultmode=800x600-16bpp
window_caption=XVFB-for-MiniGUI-3.0-(Gtk-Version)
exec_file=/usr/local/bin/qvfb2

安装核心组件

1.安装资源库文件minigui-res-3.2.0 [important]

资源库文件包含一些基本字体、图标、位图和鼠标光标等,安装步骤一如既往:

./configure
make &&  sudo make install

2.安装核心库文件libminigui-3.2.0 [important]

./configure
make &&  sudo make install

如果没有configure文件,执行:

./autogen.sh

安装完之后,vi /etc/ld.so.conf 添加 /usr/local/libvi /etc/ld.so.conf.d/minigui.conf 添加 /usr/local/lib,然后执行 ldconfig(目的为了让动态链接库为系统所共享,系统默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件)。
实际上如果我要跑官网上的demo的话还要打开对png图片的支持,配置时这项默认是打开的,这一点可以通过打开mgconfig.h文件来确认配置是否生效,如果没有可手工将里面对于的宏打开即可,如png图片支持对于的宏为#define _MGIMAGE_PNG 1。

3.安装minigui组件

√ libmgplus-1.4.0
√ libmgncs-1.2.0
√ libmgeff-1.2.0
× libmgncs4touch-1.2.0
√ libmgutils-1.2.0

libmgncs4touch-1.2.0库和触摸相关的,暂时用不到,安装失败了我就没管。

4.安装mg-samples-3.0.12

最初遇到了下面这个错误:

minesweeper.c: In function ‘TestMyWinProc’:
minesweeper.c:827:30: error: invalid operands to binary | (have ‘HWND {aka void *}’ and ‘HWND {aka void *}’)
	if (hCongratuate | hHighscore)

然后被我修改成了:(这样改没报错,但不知道什么后果,好像还行吧(ノ ̄▽ ̄) )
在这里插入图片描述
从README可以得知

For simplified Chinese UI, please use the following configuration command:
	 $ ./configure --with-lang=zhcn

执行这条指令用于中文显示,接下来make,这个过程会遇到了很多个错误,无非就是没有定义的引用、.h文件不存在、重复定义等,提示哪里错了改哪里就可以了。主要改的是Makefile中的头文件查找路径,经过一番洗礼后可以熟练使用find和grep命令(微笑脸),前前后后也改了几个小时(中途已经改了很多东西,./configure庆祝一下,回过神来要哭晕了!!),改这个还是要点耐心的!纯粹是体力活。

......
CFLAGS := -g -O2 -Wall -Wstrict-prototypes -pipe
CFLAGS += -I/root/MiniGUI3.2/CoreLib/libminigui-3.2.0/src/include
CFLAGS += -I/root/MiniGUI3.2/CoreLib/libminigui-3.2.0/include
CFLAGS += -I/root/MiniGUI3.2/CoreLib/libminigui-3.2.0/include/ctrl
......
MINIGUI_CFLAGS := -I/usr/local/include
MINIGUI_CFLAGS += -I/root/MiniGUI3.2/CoreLib/libminigui-3.2.0/src/include
MINIGUI_CFLAGS += -I/root/MiniGUI3.2/CoreLib/libminigui-3.2.0/include
MINIGUI_CFLAGS += -I/root/MiniGUI3.2/CoreLib/libminigui-3.2.0/include/ctrl
......

运行demo

终于来到了最喜欢的环节。

1.启动显示框架

root@kylin:~/MiniGUI3.2/CoreLib/mg-samples-3.0.12/src# ./mginit

在这里插入图片描述

2.运行demo

root@kylin:~/MiniGUI3.2/CoreLib/mg-samples-3.0.12/same# ./same

在这里插入图片描述
可以看到中文显示乱码,因为还没有设置中文字库。

设置中文字库

vi /usr/local/etc/MiniGUI.cfg

# The first system font must be a logical font using RBF device font.
[systemfont]
font_number=5
font0=rbf-FixedSys-rrncnn-8-16-ISO8859-1
font1=*-FixedSys-rrncnn-*-16-GB2312
font2=*-Courier-rrncnn-*-16-GB2312
font3=*-SansSerif-rrncnn-*-16-GB2312
font4=*-System-rrncnn-*-16-GB2312

default=0
wchar_def=1
fixed=1
caption=2
menu=3
control=3

[rawbitmapfonts]
font_number=2
name0=rbf-fixed-rrncnn-16-16-GB2312-0
fontfile0=/usr/local/share/minigui/res/font/song-16-gb2312.bin
name1=rbf-fixed-rrncnn-12-12-GB2312-0
fontfile1=/usr/local/share/minigui/res/font/song-12-gb2312.bin

[varbitmapfonts]
font_number=0

一定要注意配置项的每行末尾无空格!! 不然会提示GDI资源初始化失败,界面不会显示。
再次运行,可以发现已经看到了美丽新世界。
在这里插入图片描述


参考网址: