操作系统: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版本的,系统最好选择32位的系统,不然会遇到很多问题。参考的是网上MiniGUI3.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(评论给出了解决办法
:安装这里面的 https://download.savannah.gnu.org/releases/freetype/ 2.9.1版本后,gvfb就可以顺利安装上了)。
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/lib
,vi /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中的头文件路径,前前后后改了好久,改这个还是要点耐心的,纯粹是体力活。
......
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资源初始化失败,界面不会显示。
这里再次运行就没什么毛病了。
参考网址: