zoukankan      html  css  js  c++  java
  • 全志A64 QT移植

    1. 把编译工具 gcc-linaro-aarch64.tar.xz 添加到环境.bashrc 中

    2. 下载 tslib-1.4.tar.gz ,libiconv-1.15.tar.gz ,qt-everywhere-opensource-src-5.6.1.tar.gz

    3. 由于tslib与libiconv无法识别arch64 所以需要解压编译工具并创建软链接。

    #!/bin/sh
    ln -s aarch64-linux-gnu-addr2line arm-linux-addr2line 
    ln -s aarch64-linux-gnu-ar arm-linux-ar 
    ln -s aarch64-linux-gnu-as arm-linux-as 
    ln -s aarch64-linux-gnu-c++ arm-linux-c++ 
    ln -s aarch64-linux-gnu-c++filt arm-linux-c++filt 
    ln -s aarch64-linux-gnu-cpp arm-linux-cpp 
    ln -s aarch64-linux-gnu-elfedit arm-linux-elfedit 
    ln -s aarch64-linux-gnu-ct-ng.config arm-linux-ct-ng.config 
    ln -s aarch64-linux-gnu-g++ arm-linux-g++ 
    ln -s aarch64-linux-gnu-gcc arm-linux-gcc 
    ln -s aarch64-linux-gnu-gcc-ar arm-linux-gcc-ar 
    ln -s aarch64-linux-gnu-gcc-nm arm-linux-gcc-nm 
    ln -s aarch64-linux-gnu-gcc-ranlib arm-linux-gcc-ranlib 
    ln -s aarch64-linux-gnu-gcov arm-linux-gcov 
    ln -s aarch64-linux-gnu-gdb arm-linux-gdb 
    ln -s aarch64-linux-gnu-gfortran arm-linux-gfortran 
    ln -s aarch64-linux-gnu-gprof arm-linux-gprof 
    ln -s aarch64-linux-gnu-ld arm-linux-ld 
    ln -s aarch64-linux-gnu-ldd arm-linux-ldd 
    ln -s aarch64-linux-gnu-nm arm-linux-nm 
    ln -s aarch64-linux-gnu-objcopy arm-linux-objcopy 
    ln -s aarch64-linux-gnu-objdump arm-linux-objdump 
    ln -s aarch64-linux-gnu-pkg-config arm-linux-pkg-config 
    ln -s aarch64-linux-gnu-pkg-config-real arm-linux-pkg-config-real 
    ln -s aarch64-linux-gnu-ranlib arm-linux-ranlib 
    ln -s aarch64-linux-gnu-readelf arm-linux-readelf 
    ln -s aarch64-linux-gnu-size arm-linux-size 
    ln -s aarch64-linux-gnu-strings arm-linux-strings 
    ln -s aarch64-linux-gnu-strip arm-linux-strip
    

      4. 解压tslib 并编译安装

    #!/bin/sh
    ./autogen.sh
    make clean && make distclean
    echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
    CC=arm-none-linux-gcc
    ./configure --host=arm-linux --prefix=/opt/tslib1.4 --cache-file=arm-linux.cache
    make && make install
    

      5. 解压libiconv 并编译安装

    #!/bin/sh
    ./configure -prefix=/opt/libiconv -host=arm-linux
    make && make install
    

      6. 解压qt-everywhere-opensource-src 并编译安装

     修改该gcc配置

    $vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
    #
    # qmake configuration for building with arm-linux-gnueabi-g++
    #
    
    MAKEFILE_GENERATOR      = UNIX
    CONFIG                 += incremental
    QMAKE_INCREMENTAL_STYLE = sublib
    
    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)
    
    # modifications to g++.conf
    #QMAKE_CC                = arm-linux-gnueabi-gcc
    #QMAKE_CXX               = arm-linux-gnueabi-g++
    #QMAKE_LINK              = arm-linux-gnueabi-g++
    #QMAKE_LINK_SHLIB        = arm-linux-gnueabi-g++
    
    # modifications to linux.conf
    #QMAKE_AR                = arm-linux-gnueabi-ar cqs
    #QMAKE_OBJCOPY           = arm-linux-gnueabi-objcopy
    #QMAKE_NM                = arm-linux-gnueabi-nm -P
    #QMAKE_STRIP             = arm-linux-gnueabi-strip
    
    # modifications to g++.conf
    QMAKE_CC                = aarch64-linux-gnu-gcc
    QMAKE_CXX               = aarch64-linux-gnu-g++
    QMAKE_LINK              = aarch64-linux-gnu-g++
    QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++
    
    # modifications to linux.conf
    QMAKE_AR                = aarch64-linux-gnu-ar cqs
    QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
    QMAKE_NM                = aarch64-linux-gnu-nm -P
    QMAKE_STRIP             = aarch64-linux-gnu-strip
    
    
    
    load(qt_config)
    ~               

    配置编译参数

    #!/bin/sh
    ./configure -prefix /opt/qt-5.6-arm -release -xplatform linux-arm-gnueabi-g++ -make libs -optimized-qmake -pch -shared -qt-libjpeg -qt-libpng -tslib -I/opt/tslib1.4/include -L/opt/tslib1.4/lib -nomake tools -make examples -iconv
    make
    make install #在安装example时报错可以不理睬

    7. 在/opt/qt-5.6-arm 下生成A64 相关的样例和库

    bin  doc  etc  examples  include  lib  mkspecs  plugins  qml  share

    8. 新建文件夹,拷贝/opt/qt-5.6-arm/examples ,/opt/qt-5.6-arm/lib, /opt/qt-5.6-arm/plugins ,/opt/tslib1.4/lib, /opt/libiconv/lib/ 并打包放到 开发板上

    在开发板上配置环境变量运行测试程序

    export QTDIR=/dav/qt-5.6-arm
    export QT_QPA_FONTDIR=$QTDIR/lib/fonts 
    export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/ 
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 
    export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
    export QWS_MOUSE_PROTO=/dev/input/event0
    export LD_PRELOAD=/dav/qt-5.6-arm/lib/preloadable_libiconv.so
    
    
    ./svg/embeddedsvgviewer/embeddedsvgviewer
  • 相关阅读:
    1 win10双系统安装ubuntu16.04和18.04(问题详细记录)
    一些操作记录备查
    SecureCRT中文乱码解决方法
    Oracle中的NVL函数
    本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
    DevExpress DateEdit控件选择精确到秒
    DevExpress GridView 整理
    Linux 删除文件夹和文件的命令
    DevExpress之XtraReport 学习
    解决Visual Studio Community 2017工具栏中没有Report Viewer的问题
  • 原文地址:https://www.cnblogs.com/okshall/p/9903604.html
Copyright © 2011-2022 走看看