MiniGui开发:ubuntu-14.04环境移植MiniGui

来源:互联网 发布:php 36进制 编辑:程序博客网 时间:2024/05/01 15:30

开发项目在嵌入式平台上使用MiniGui作为用户界面开发工具,在工作之余准备在ubuntu14.04上搭建一个测试环境,这样代码测试起来比较方便。

前前后后搞了好多天,遇到了很多麻烦,但是最后还是跑通了。作为一个之前对minigui完全不懂的小白来说,真的需要好好摸索。

总结一下:minigui真的很坑!如果不是项目必须的东西,我建议读者,能不用就不用。

问题:

  • minigui官方提供的依赖库已经是好多年前的,在移植过程中很容易出现安装错误,亲测!
  • 据说官方貌似不再维护了。所以即使遇到bug,估计也不好解决。

搭建开发环境

系统:ubuntu-14.04.3 i686
编译器:gcc-4.8.4, GNU Make 3.81
MiniGui资源下载:MiniGui官网
MiniGui库版本: 3.0.12
资源文件:

minigui-res-be-3.0.12.tar.gz
libminigui-gpl-3.0.12.tar.gz
libmgplus-1.2.4.tar.gz
mg-samples-3.0.12.tar.gz

1

编译安装MiniGui

安装资源文件

解压资源文件,进入minigui-res-be-3.0.12目录

$ ./configure –prefix=/home/test/install/minigui/

$ make && make install

解压资源文件

进入libminigui-gpl-3.0.12目录

$ ./configure –prefix=/home/test/install/minigui –enable-qvfbial=yes –enable-videoqvfb=yes

$ make

错误:png.c:28:17: fatal error: png.h: No such file or directory
解决:sudo apt-get install libpng12-dev

$ make install

安装完成后查看安装目录

$ ls minigui/
etc include lib share

安装完成后,在指定目录~/install/minigui下,生成了etc include lib share四个文件夹,分别放置了配置文件、头文件、库文件和资源文件,在实际开发时,需要用到这些文件。

安装minigui库和头文件

解压资源文件,进入libmgplus-1.2.4目录,配置:

./configure –prefix=/home/test/install/minigui PKG_CONFIG_PATH=/home/test/install/minigui/lib/pkgconfig CPPFLAGS=-I/home/test/install/minigui/include

错误:agg_platform_support.cpp:30:28: fatal error: minigui/common.h: No such file or directory
解决:设置minigui头文件目录,CPPFLAGS=-I/home/test/install/minigui/include

执行 $ make && make install

编译sample文件

解压资源文件,进入mg-samples-3.0.12目录

./configure –prefix=/home/test/install/minigui PKG_CONFIG_PATH=/home/test/install/minigui/lib/pkgconfig CPPFLAGS=-I/home/test/install/minigui/include

运行make命令进行编译。
错误:dlgdemo.c:40:27: fatal error: mgplus/mgplus.h: 没有那个文件或目录
解决:设置libmgplus头文件目录,CPPFLAGS=-I/home/test/install/minigui/include
提示:No package ‘minigui’ found — 运行configure时增加

PKG_CONFIG_PATH=~/install/minigui/lib/pkgconfig

提示:error: minigui/common.h, 运行configure是增加

CPPFLAGS=-I~/install/minigui/include

修改配置文件

在安装目录的etc目录下生产了minigui所需的配置文件MiniGUI.cfg,将该文件拷贝到/etc目录下,并修改部分配置信息。

[system]# GAL engine and default options#gal_engine=pc_xvfbgal_engine=qvfbdefaultmode=800x600-16bpp# IAL engine#ial_engine=pc_xvfbial_engine=qvfbmdev=/dev/input/micemtype=IMPS2

将默认配置修改为使用qvfb模拟器,配置资源文件目录:

cursorpath=/home/test/install/minigui/share/minigui/res/cursor/

respath=/home/test/install/minigui/share/minigui/res/

将光标目录和源目录值修改为实际的安装目录,保存退出。

安装qvfb模拟器

参考:MiniGui开发:Ubuntu14.04环境安装qvfb工具

测试

搭建测试环境,创建目录helloworld include lib,将安装目录下的头文件和静态库文件拷贝过来。

$ tree
├── helloworld
│ ├── helloworld.c
│ ├── helloworld_res_cn.h
│ ├── helloworld_res_en.h
│ ├── helloworld_res_tw.h
│ └── Makefile
├── include
│ ├── mgplus
│ └── minigui
└── lib
├── libmgplus.a
└── libminigui_ths.a

编写Makefile:

# Makefile for minigui test # author    hancq# date      2016-09-30PRO_NAME=helloworldMINIGUI_DIR=/home/test/share/workspace/test/miniguiCFLAGS += -I.CFLAGS += -I$(MINIGUI_DIR)/includeLDFLAGS += -lmgplus -lminigui_ths -lpthread -lm -ldl -lpng -ljpeg -L$(MINIGUI_DIR)/lib.PHONY:all cleanall:$(PRO_NAME)$(PRO_NAME):$(PRO_NAME).o    gcc $(CFLAGS) $(PRO_NAME).o -o $@ $(LDFLAGS)%.o:%.c    gcc $(CFLAGS) -c $^ -o $@clean:    -rm -rf $(PRO_NAME) *.o

将MiniGui的sample中src目录的helloworld相关的文件拷贝到helloword目录下

$ ls helloworld*
helloworld.c helloworld_res_cn.h helloworld_res_en.h helloworld_res_tw.h

运行make命令编译生成helloworld可执行文件,先执行在后台把qvfb进行运行起来,在执行./helloworld,此时在模拟器中可以正常运行起来了。

测试成功。

其它错误:

错误:./helloworld: error while loading shared libraries: libminigui_ths-3.0.so.12: cannot open shared object file: No such file or directory
解决:编译找不到库文件,需要在编译选项中增加库和库文件路径

错误:KERNEL>InitGUI (step 4): Can not start client (Please run mginit first)!
解决:运行的是客户端版的进程程序,需要先运行服务器mginit。

错误:KERNEL>InitGUI: Count not init mouse cursor!
KERNEL>InitGUI: Init failure, please check your MiniGUI configuration or resource.
解决:找不到资源,修改MiniGui配置文件中资源文件目录。

0 0
原创粉丝点击