linux mini 切换界面,miniStudio设计minigui界面并移植到linux开发板上

[此文档并非安装minigui在PC端的linux平台下,而是给开发板搭建minigui的运行所需要的类库等环境]

安装pc端的minigui类库基本上都是:

./configure

make

make

install

就可以了

-----------------------------------------------------------------

pc平台:ubuntu10.04

开发板:FriendlyARM

tiny210V2

交叉编译工具:arm-linux-gcc

minigui版本:3.0.12

一,miniGUI编译安装

交叉编译工具arm-linux-gcc

相关文件库:从官网处下载(http://www.minigui.org/en/download/)

1、安装miniGUI需要的库:

freetype-2.3.9-fm20100818.tar.gz

jpegsrc.v7.tar.gz

libmgplus-1.2.4.tar.gz

libminigui-gpl-3.0.12.tar.gz

libpng-1.2.37.tar.gz

mg-samples-3.0.12.tar.gz

minigui-res-be-3.0.12.tar.gz

zlib-1.2.2.tar.gz

从windows下miniStdio移植程序,编译说需要的库

libmgutils-1.0.4.tar.gz

libmgncs-1.0.8.tar.gz

依赖关系:

libpng (zlib);

libmgplus(libminigui)

mg-samples(libminigui,libmgplus)

libmgncs(libmgutils);

2、安装库

JPEG

$ ./configure --target=arm-linux --host=arm-linux

--prefix=/home/song/miniGUI/target CC=arm-linux-gcc

CPP=arm-linux-cpp LD=arm-linux-ld AR=arm-linux-ar

RANLIB=arm-linux-ranlib STRIP=arm-linux-strip

$ make

$ make install

FREETYPE

$ ./configure --build=i686-linux --host=arm-linux

--prefix=/home/song/miniGUI/target CC=arm-linux-gcc

CPP=arm-linux-cpp LD=arm-linux-ld AR=arm-linux-ar

RANLIB=arm-linux-ranlib STRIP=arm-linux-strip

$ make

$ make install

ZLIB

$ ./configure --shared --prefix=/home/song/miniGUI/target

修改Makefile,将编译相关的设置改成交叉工具链

$ make

$ make install

LIBPNG

$ cp scripts/makefile.linux Makefile

修改

21 # Utilities:

22 AR_RC=ar rc

23 CC=cc

24 MKDIR_P=mkdir -p

25 LN_SF=ln -sf

26 RANLIB=ranlib

21 # Utilities:

22 AR_RC=arm-linux-ar rc

23 CC=arm-linux-gcc

24 MKDIR_P=mkdir -p

25 LN_SF=ln -sf

26 RANLIB=arm-linux-ranlib

修改

32 prefix=/usr/local

32 prefix=/home/song/miniGUI/target/

修改zlib库路径

# Where the zlib library and include files are located.

#ZLIBLIB=/usr/local/lib

#ZLIBINC=/usr/local/include

ZLIBLIB=$(prefix)/lib

ZLIBINC=$(prefix)/include

$ make

$ make install

LIBMINIGUI

$ ./configure --build=i686-linux --target=arm-linux

--host=arm-linux --prefix=/home/song/miniGUI/target

CC=arm-linux-gcc CPP=arm-linux-cpp CXX=arm-linux-g++

LD=arm-linux-ld AR=arm-linux-ar RANLIB=arm-linux-ranlib

STRIP=arm-linux-strip

出现

Going to generate license pictures ...

./configure: line 15530: ./runme.sh: No such file or

directory

无视之

$ vim src/newgal/pcxvfb/Makefile

修改194行,将/usr/include去掉:

INCLUDES = -I$(abs_top_srcdir)/src/include

-I$(abs_top_srcdir)/include \

-I$(abs_top_srcdir)/src/newgal/ -I/usr/include/

否则编译pcxvfb.c将出错

$ make

$ make install

LIBMGPLUS

$ CC=arm-linux-gcc CXX=arm-linux-g++ ac_ct_CXX=arm-linux-g++

MINIGUI_CFLAGS=-I/home/song/miniGUI/target/include

CPPFLAGS=-I/home/song/miniGUI/target/include

MINIGUI_LIBS=-L/home/song/miniGUI/target/lib-lminigui_ths-ljpeg-lpng-ldl-lm-lpthread

./configure --prefix=/home/song/miniGUI/target --build=i686-linux

--host=arm-linux --target=arm-linux

$ make

$ make install

--------------------------

MG-SAMPLES

(由于不管怎么写类库的路径,他就是不在home/song/miniGUI/target/lib下找,他总是在/usr/local/lib下找,但是/usr/local/lib下的为gcc编译的linux环境的类库,所以肯定会出错。这个东西弄了好几天才琢磨明白。)

提前做:

cd

/usr/local/

mv lib

lib.bak

cp -af

/home/song/miniGUI/target/lib ./

【上边三个命令执行完毕之后开始执行下边的./configure,直到此处的交叉编辑工作全部结束,记得一定要把此处改回原来,不然对以后的操作造成影响。】

$ ./configure --target=arm-linux --host=arm-linux

--prefix=/home/song/miniGUI/target CC=arm-linux-gcc

CPP=arm-linux-cpp LD=arm-linux-ld AR=arm-linux-ar

RANLIB=arm-linux-ranlib STRIP=arm-linux-strip

CFLAGS="-I/home/song/miniGUI/target/include"

$ make

$ cd src/ # 生成的可执行程序放在此目录,需手动复制

------------------------

MINIGUI-RES

这些资源与平台无关,大致是一些图片

$ ./configure --prefix=/home/song/miniGUI/target

$ make

$ make install

执行install之后,会安装到target目录下的share文件夹

修改MiniGUI.cfg

将MiniGUI.cfg的开头部分改为:

[system]

# GAL engine and default options

gal_engine=fbcon

defaultmode=800x480-16bpp (对应板子分辨率)

【这里跟机子有关,我的机子是32bpp,如果分辨率有问题,可以调动几次试试】

# IAL engine

ial_engine=console

mdev=/dev/input/mice

mtype=IMPS2

[fbcon]

defaultmode=800x480-32bpp 【这里跟机子有关,我的机子是32bpp,如果分辨率有问题,可以调动几次试试】

修改res资源放置的路径,在配置文件中的[cursorinfo]->cursorpath以及[resinfo]->respath

否则运行sample程序时会出错。

修改路径:

103 [cursorinfo]

104 # Edit following line to specify cursor files path

105 cursorpath=/usr/local/share/minigui/res/cursor/

131 [resinfo]

132 respath=/usr/local/share/minigui/res/

比如,运行helloworld时显示:

get_image_type: unknown type png.

get_image_type: unknown type png.

get_image_type: unknown type png.

get_image_type: unknown type png.

get_image_type: unknown type png.

KERNEL>InitGUI: Count not init mouse cursor!

KERNEL>InitGUI: Init failure, please check your

MiniGUI configuration or resource.

3 移植程序

首先安装依赖库

libmgutils-1.0.4.tar.gz

$ ./configure --target=arm-linux --host=arm-linux

--prefix=/home/song/miniGUI/target CC=arm-linux-gcc

CPP=arm-linux-cpp LD=arm-linux-ld AR=arm-linux-ar

RANLIB=arm-linux-ranlib STRIP=arm-linux-strip

CFLAGS="-I/home/song/miniGUI/target/include"

$ make

$ make install

libmgncs-1.0.8.tar.gz

$ ./configure --target=arm-linux --host=arm-linux

--prefix=/home/song/miniGUI/target CC=arm-linux-gcc

CPP=arm-linux-cpp LD=arm-linux-ld AR=arm-linux-ar

RANLIB=arm-linux-ranlib STRIP=arm-linux-strip

CFLAGS="-I/home/song/miniGUI/target/include"

$ make

$ make install

把在windows下通过miniStido设计的界面程序复制到linux下

交叉编译界面程序

arm-linux-gcc -g -O2 -Wall -Wstrict-prototypes

-pipe -o flight src/FlightGUI.c

src/FlightGUI_main.c -L/home/song/miniGUI/target/lib -lminigui_ths

-ljpeg -ldl -lm -lpthread -lmgplus -lmgncs -lmgutils -lstdc++

-I/home/song/miniGUI/target/include -I./include

其中

-lstdc++是交叉编译工具所带的库(/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib);

4、把/home/song/miniGUI/target

下的文件拷贝到开发板上相应目录下,注意MiniGUI.cfg里面相应路径的配置。【在拷贝类库的时候,建议tar打包之后再复制到U盘,然后放到开发板,这样的软连接不用设置。】

【lib中的类库单独拷出一份开发板的/usr/lib下,整体还是要在/usr/local下。】

5、把编译好的界面程序以及mgncs.cfg 、res文件拷贝到开发板的同一个目录下,运行就可。

注意:在运行程序时会提示你找不到相应的库文件,要建立相应的软连接

用法:ln -s 源文件 目标文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值