MiniGUI-3.0.12在loongson-1b版上的移植

loongson1B板上移植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(libminiguilibmgplus)

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:usecundeclared 

修改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”即可運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章