• MiniGUI3.0.12 Hi3516CV500 移植


    资源准备

    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 
    
  • 相关阅读:
    sign in和sign up区别
    sql语句左右表连接理解
    神器
    js不能执行的几个小白错误
    关于isset使用产生Can't use function return value in write context错误
    jQuery中怎么添加innerText、innerHtml(转)
    C#开发BHO程序(引)
    C# 开发BHO插件
    JS对日期时间的操作
    解决JQuery中datatables设置隐藏显示列多次提交后台刷新数据的问题
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/12112095.html
Copyright © 2020-2023  润新知