libminigui-gpl的编译依赖libjpeg、libpng、libz和ts库,因此在交叉编译libminigui-gpl之前,需要先交叉编译jpegsrc.v6b.tar.gz、libpng-1.2.44.tar.gz、zlib-1.2.5.tar.bz2和tslib-1.0.tar.bz2等库。(说明:我的交叉编译库是放在/usr/cross目录下)
1.交叉编译libminigui-gpl-3.0.12minigui核心库(龙芯平台是mipsel架构)
./configure --prefix=/home/hu/apps/MiniGui/install-cross --host=mipsel-linux --target=mipsel-linux --disable-videoqvfb --disable-pcxvfb --enable-videofbcon CFLAGS=-I/usr/cross/include LDFLAGS=-L/usr/cross/lib CC=mipsel-linux-gcc CXX=mipsel-linux-g++ --enable-tslibial
configure是最重要的一步,如果设置错参数,会导致后续的编译不成功。因为在开发板的显示是基于framebuffer,所以配置--disable-videoqvfb --disable-pcxvfb --enable-videofbcon,配置触摸屏--enable-tslibial
然后执行make && make install,安装库放在/home/hu/apps/MiniGui/install-cross目录下
将安装目录etc下的MiniGui.cfg文件拷贝到开发板的/etc目录下。
将安装目录中的动态库libminigui_ths-3.0.so.12.0.0拷贝到开发板中。
2.交叉编译libmgplus,minigui扩展库
./configure --prefix=/home/hu/apps/MiniGui/install-cross --host=mipsel-linux --target=mipsel-linux MINIGUI_CFLAGS=-I/home/hu/apps/MiniGui/install-cross/include MINIGUI_LIBS=-lminigui_ths CC=mipsel-linux-gcc CXX=mipsel-linux-g++
执行make && make install
将安装目录中的动态库libmgplus-1.2.4.so.4.0.0拷贝到开发板中。
3.交叉编译minigui-res-be-3.0.12,minigui资源库,包含图片、字体等素材
./configure --prefix=/home/hu/apps/MiniGui/install-cross --host=mipsel-linux --target=mipsel-linux
make && make install
将minigui资源库的安装目录中的share/文件夹拷贝到开发板的/usr/local目录下
4.交叉编译mg-samples-3.0.12,minigui示例库
./configure --prefix=/home/hu/apps/MiniGui/install-cross --host=mipsel-linux --target=mipsel-linux MINIGUI_CFLAGS=-I/home/hu/apps/MiniGui/install-cross/include MINIGUI_LIBS=-lminigui_ths CC=mipsel-linux-gcc CXX=mipsel-linux-g++ LDFLAGS="-L/home/hu/apps/MiniGui/install-cross/lib -lminigui_ths -lpthread -ldl -L/usr/cross/lib -lts -lpng -ljpeg -lz " CFLAGS=-I/home/hu/apps/MiniGui/install-cross/include CXXFLAGS=-I/home/hu/apps/MiniGui/install-cross/include
make
编译完成后,在src目录下,会针对每个xxx.c生成可执行二进制文件xxx,将要测试的文件拷贝到开发板中,可运行。
MiniGui.cfg在LS1B上的配置:
al_engine=fbcon
ial_engine=dummy
ultmode=800x480-16bpp