资源准备
MiniGUI官网下载地址
或者从我的github
分别下载:
- freetype-2.3.9-fm20100818.tar.gz
- jpegsrc.v7.tar.gz
- libmgplus-1.2.4.tar.gz
- libminigui-3.0.12-linux.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
将其放在文件目录minigui_3.0下,并解压:
tar -zxvf zlib-1.2.2.tar.gz
tar -zxvf libpng-1.2.37.tar.gz
tar -zxvf jpegsrc.v7.tar.gz
tar -zxvf freetype-2.3.9-fm20100818.tar.gz
tar -axvf libminigui-3.0.12-linux.tar.gz
tar -axvf libmgplus-1.2.4.tar.gz
tar -zxvf mg-samples-3.0.12.tar.gz
tar -zxvf minigui-res-be-3.0.12.tar.gz
编译与安装
DIR=`pwd`
echo $DIR
OUTPUT_DIR=$DIR/build
mkdir -p $OUTPUT_DIR
export CFLAGS=-I$OUTPUT_DIR/include
export CPPFLAGS=-I$OUTPUT_DIR/include
export LDFLAGS=-L$OUTPUT_DIR/lib
export PKG_CONFIG_PATH=$OUTPUT_DIR/lib/pkgconfig/
export MINIGUI_CFLAGS=-I$OUTPUT_DIR/include
export MINIGUI_LIBS="-L$OUTPUT_DIR/lib -lminigui_ths -lpthread -lm -ldl -ljpeg -lpng -lz"
HOST_CROSS=arm-himix200-linux
CROSS=${HOST_CROSS}-
export CC=${CROSS}gcc
export CXX=${CROSS}g++
export LD=${CROSS}ld
export AS=${CROSS}as
export AR=${CROSS}ar
# 编译安装zlib
cd $DIR/zlib-1.2.2
./configure --prefix=$OUTPUT_DIR --shared
make -j8
make install
# 编译安装 libpng
cd $DIR/libpng-1.2.37
./configure --prefix=$OUTPUT_DIR --host=$HOST_CROSS
make -j8
make install
# 编译安装 jpeg
cd $DIR/jpeg-7
./configure --prefix=$OUTPUT_DIR --host=$HOST_CROSS
make
make install
# 编译安装 freetype-2.3.9-fm20100818
cd $DIR/freetype-2.3.9-fm20100818
./configure --prefix=$OUTPUT_DIR --host=$HOST_CROSS --enable-static
make -j8
make install
# 编译安装 libminigui
cd $DIR/libminigui-3.0.12-linux
./configure --prefix=$OUTPUT_DIR --host=$HOST_CROSS
--enable-static
--disable-screensaver
--disable-splash
--disable-jpgsupport
--enable-videoqvfb=no
--enable-rtosxvfb=no
--enable-pcxvfb=no
make -j8
make install
# 编译安装 libmgplus
cd $DIR/libmgplus-1.2.4
./configure --prefix=$OUTPUT_DIR --host=$HOST_CROSS
make -j8
make install
# 编译安装 mg-samples
cd $DIR/mg-samples-3.0.12
./configure --prefix=$OUTPUT_DIR --host=$HOST_CROSS
make -j8
make install
编译过程出现的问题
/lib/libminigui_ths.so: undefined reference to `WndClientRect'
/lib/libminigui_ths.so: undefined reference to `pixel2rgb'
/lib/libminigui_ths.so: undefined reference to `WndRect'
解决办法:
cd $DIR/libminigui-3.0.12-linux
grep -r "WndClientRect" .
找到函数定义,将 inline 去掉,其它的 undefined 函数也按照此种方法解决。
运行 Demo
将 build 目录下的 lib 文件夹拷贝到 nfs 的 /minigui/lib 目录下,导出环境变量:
export LD_LIBRARY_PATH='/usr/local/lib:/usr/lib:/mnt/nfs/minigui/lib'
将 minigui-res-be-3.0.12 中的文件拷贝到 nfs 的 minigui/res 目录下。
将 buildetc 中的 MiniGUI.cfg 文件拷贝到 nfs。
修改 MiniGUI.cfg:
[system]
# GAL engine and default options
gal_engine=fbcon
defaultmode=1920x1080-32bpp
# IAL engine
ial_engine=fbcon
mdev=/dev/input/mice
mtype=IMPS2
[fbcon]
defaultmode=1920x1080-32bpp
......
[cursorinfo]
# Edit following line to specify cursor files path
cursorpath=/mnt/nfs/minigui/res/cursor/
......
[resinfo]
respath=/mnt/nfs/minigui/res/
运行hifb的sample:
./sample_hifb 0
将 MiniGUI 的 helloworld Demo 程序拷贝到 nfs 并执行:
./helloworld