MiniGUI Hi3516CV500 移植

资源准备

MiniGUI官网下载地址
分别下载:

  • 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 目录下。
将 build\etc 中的 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 

猜你喜欢

转载自www.cnblogs.com/xiaojianliu/p/12112095.html