在loongson的1B板上移植MiniGUI-3.0.12流水賬
環境:mips Ubuntu-10.4 gcc-3.4.6-2f(mipsel-linux)
首先,在minigui官網下載安裝包http://www.minigui.org/zhcn/download/
freetype-2.3.9-fm20100818.tar.gz minigui字體引擎
jpegsrc.v7.tar.gz 顯示jpeg的庫
libmgplus-1.2.4.tar.gz 增強功能
zlib-1.2.2.tar.gz 數據壓縮函數庫
libpng-1.2.37.tar.gz
libminigui.gpl-3.0.12.tar.gz
minigui-res-be-3.0.12.tar.gz minigui用到的資源
mg-sample-3.0.12.tar.gz
依賴關係:
libpng (zlib);
libmgplus(libminigui)
mg-samples(libminigui,libmgplus)
在ubuntu中自己任意選定一個目錄放置安裝包,然後解壓
tar xvf ***.tar.gz
編譯jpeg
[root@llocalhost] CC=mipsel-linux-gcc \
CPP=mipsel-linux-cpp \
LD=mispel-linux-ld \
AS=mipsel-linux-as \
AR=mipsel-linux-ar \
ANTLIB=mipsel-linux-antlib \
STRIP=mipsel-linux-strip \
./configure --prefix=/usr/local/minigui --host=mipsel-linux --target=mispel-linux
[root@localhost] make
[root@localhost] make install
編譯freetype
[root@llocalhost] CC=mipsel-linux-gcc \
CPP=mipsel-linux-cpp \
LD=mispel-linux-ld \
AS=mipsel-linux-as \
AR=mipsel-linux-ar \
ANTLIB=mipsel-linux-antlib \
STRIP=mipsel-linux-strip \
./configure --prefix=/usr/local/minigui --host=mipsel-linux --target=mispel-linux
[root@localhost] make
[root@localhost] make install
編譯zlib
[root@llocalhost] CC=mipsel-linux-gcc \
CPP=mipsel-linux-cpp \
LD=mispel-linux-ld \
AS=mipsel-linux-as \
AR=mipsel-linux-ar \
./configure --prefix=/usr/local/minigui --shared
[root@localhost] make
[root@localhost] make install
編譯png
[root@llocalhost] cp scripts/makefile.linux Makefile
修改Makefile
AR_RC=ar rc
CC=cc
MKDIR_P=mkdir -p
LN_SF=ln -sf
RANLIB=ranlib
改爲
AR_RC=mipsel-linux-ar rc
CC=mipsel-linux-gcc
MKDIR_P=mkdir -p
LN_SF=ln -sf
RANLIB=mipsel-linux-ranlib
prefix=/usr/local
改爲
prefix=/usr/local/minigui
修改zlib庫路徑
# Where the zlib library and include files are located.
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=$(prefix)/lib
ZLIBINC=$(prefix)/include
[root@localhost] make
[root@localhost] make install
編譯minigui-res
[root@llocalhost] CC=mipsel-linux-gcc \
CPP=mipsel-linux-cpp \
LD=mispel-linux-ld \
AS=mipsel-linux-as \
AR=mipsel-linux-ar \
ANTLIB=mipsel-linux-antlib \
STRIP=mipsel-linux-strip \
./configure --prefix=/usr/local/minigui --host=mipsel-linux --target=mispel-linux
[root@localhost] make
[root@localhost] make install
編譯libminigui
[root@llocalhost] CC=mipsel-linux-gcc \
CPP=mipsel-linux-cpp \
LD=mispel-linux-ld \
AS=mipsel-linux-as \
AR=mipsel-linux-ar \
CFLAGS=”-I/usr/local/minigui/include -I/opt/gcc-3.4.6-2f/i486-pc-linux-gun/mipsel-linux/include”\
CPPFLAGS=”-g -I/usr/local/minigui/include -I/opt/gcc-3.4.6-2f/i486-pc-linux-gun/mipsel-linux/include”\
CXXFLAGS=”-g -I/usr/local/minigui/include -I/opt/gcc-3.4.6-2f/i486-pc-linux-gun/mipsel-linux/include”\
./configure --prefix=/usr/local/minigui --host=mipsel-linux --target=mispel-linux --with-osname=linux --with-stype=classic --with-targetname=fbcon --enable-autoial --enable-rbf16 --disable-vbfsupport
[root@localhost] make
[root@localhost] make install
遇到錯誤提示‘asm’時
去掉/src/newgal/pcxvfb/Makefile中的oldincludedir=/usr/local
以及INCLUDES路徑中的“-I/usr/local”即可
編譯libmgplus
[root@llocalhost] CC=mipsel-linux-gcc \
CPP=mipsel-linux-cpp \
LD=mispel-linux-ld \
AS=mipsel-linux-as \
AR=mipsel-linux-ar \
ANTLIB=mipsel-linux-antlib \
STRIP=mipsel-linux-strip \
./configure --prefix=/usr/local/minigui --host=mipsel-linux --target=mispel-linux
[root@localhost] make
[root@localhost] make install
提示no minigui package時
export PKG_CONFIG_PATH=/usr/local/minigui/lib/pkconfig
編譯mg-sample
[root@llocalhost] CC=mipsel-linux-gcc \
CPP=mipsel-linux-cpp \
LD=mispel-linux-ld \
AS=mipsel-linux-as \
AR=mipsel-linux-ar \
CFLAGS=”-I/usr/local/minigui/include -I/opt/gcc-3.4.6-2f/i486-pc-linux-gun/mipsel-linux/include”\
CPPFLAGS=”-g -I/usr/local/minigui/include -I/opt/gcc-3.4.6-2f/i486-pc-linux-gun/mipsel-linux/include”\
CXXFLAGS=”-g -I/usr/local/minigui/include -I/opt/gcc-3.4.6-2f/i486-pc-linux-gun/mipsel-linux/include”\
./configure --prefix=/usr/local/minigui --host=mipsel-linux --target=mispel-linux
[root@localhost] make
出現提示watch.c error:‘usec’undeclared
修改watch.c 中關於usec的定義爲“suseconds_t usec”
編譯好了就把/usr/local/minigui下的文件拷貝到開發板上的對應目錄usr/local/minigui/;
查看自己應用需要的庫文件mipsel-linux-readef -d helloworld,把這些庫文件拷貝到開發板的libm目錄下;
eg:運行helloworld時。要把需要的庫文件libdl.so.2/libm.so.6/libc.so.6/libc.so.6/libpthread.so.0等拷貝到開發板的lib目錄下;
另外需要注意的是:在minigui/etc下的MiniGUI.cfg必須要與所運行的程序helloworld放到板子上的同一個目錄中;
修改MiniGUI.cfg配置:
主要gal_engine=pc_xvfb改爲gal_engine=fbcon分辨率根據自己屏幕的分辨率設置(480*272);
ial_engine=pc_xvfb改爲ial_engine=dummy;
[fbcon]裏面的默認分辨率設置爲自己板子的分辨率;
在板子端“./helloworld”即可運行。