码迷,mamicode.com
首页 > 其他好文 > 详细

基于Hisi3521DV200平台移植Qt4.8.6

时间:2020-05-23 16:12:31      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:target   mbed   mouse   ||   tps   comm   idt   headers   val   

近日,因方案变更,需要移植Qt4.8.6到Hisi3521DV200平台上;而之前开发的GUI界面,都没有触摸功能,本次开发打算将触摸功能也一并实现。

1.安装交叉编译链arm-himix400-linux-g++:

  • 一般HIsiSDK包都有交叉编译链与安装指导,不做赘述。

2.交叉编译,安装tslib

3.下载Qt源码:

4.解压Qt,并修改io.pri文件:src/corelib/io/io.pri

  • 从     
        linux-*:!symbian {
                SOURCES +=                     io/qfilesystemwatcher_inotify.cpp                     io/qfilesystemwatcher_dnotify.cpp
    
                HEADERS +=                     io/qfilesystemwatcher_inotify_p.h                     io/qfilesystemwatcher_dnotify_p.h
            }
    改为
            linux-*|arm-himix400-linux-*:!symbian {
                SOURCES +=                     io/qfilesystemwatcher_inotify.cpp                     io/qfilesystemwatcher_dnotify.cpp
    
                HEADERS +=                     io/qfilesystemwatcher_inotify_p.h                     io/qfilesystemwatcher_dnotify_p.h
            }

5.创建专属arm-himix400-linux-g++编译链的qmake.conf文件

  • 创建arm-himix400-linux-g++的qmake.cof文件: cp mkspecs/qws/linux-arm-gnueabi-g++/   mkspecs/qws/arm-himix400-linux-g++/ -r
  • 修改mkspecs/qws/arm-hisiv300-linux-g++/qmake.conf文件,如下
  • #
    # qmake configuration for building with arm-none-linux-gnueabi-g++
    #
    
    include(../../common/linux.conf)
    include(../../common/gcc-base-unix.conf)
    include(../../common/g++-unix.conf)
    include(../../common/qws.conf)
    
    # modifications to g++.conf
    QMAKE_CC                = /opt/hisi-linux/x86-arm/arm-himix400-linux/bin/arm-himix400-linux-gcc -lts
    QMAKE_CXX               = /opt/hisi-linux/x86-arm/arm-himix400-linux/bin/arm-himix400-linux-g++ -lts
    QMAKE_LINK              = /opt/hisi-linux/x86-arm/arm-himix400-linux/bin/arm-himix400-linux-g++ -lts
    QMAKE_LINK_SHLIB        = /opt/hisi-linux/x86-arm/arm-himix400-linux/bin/arm-himix400-linux-g++ -lts
    
    # modifications to linux.conf
    QMAKE_AR                = /opt/hisi-linux/x86-arm/arm-himix400-linux/bin/arm-himix400-linux-ar cqs
    QMAKE_OBJCOPY           = /opt/hisi-linux/x86-arm/arm-himix400-linux/bin/arm-himix400-linux-objcopy
    QMAKE_STRIP             = /opt/hisi-linux/x86-arm/arm-himix400-linux/bin/arm-himix400-linux-strip
    
    load(qt_config)

6.设定交叉编译配置参数

  • ./configure -opensource  --prefix=/opt/qt4.8.6_a15 -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -qt-gfx-transformed -plugin-sql-sqlite -no-qt3support -no-phonon -no-svg -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib  -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/arm-himix400-linux-g++ -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake tools -nomake accessible -qt-mouse-tslib -L/home/newbie/Desktop/tslib/arm-himix400-linux-target/lib -I/home/newbie/Desktop/tslib/arm-himix400-linux-target/include 

7.编译与安装

  • make && make install

8.问题与处理方法

  • 问题
    Makefile:2519: recipe for target .obj/release-shared-emb-arm/itemviews.o failed
    make[3]: *** [.obj/release-shared-emb-arm/itemviews.o] Error 1
    make[3]: Leaving directory /home/newbie/Desktop/qt-everywhere-opensource-src-4.8.6/src/plugins/accessible/widgets
    Makefile:39: recipe for target sub-widgets-make_default failed
    make[2]: *** [sub-widgets-make_default] Error 2
    make[2]: Leaving directory /home/newbie/Desktop/qt-everywhere-opensource-src-4.8.6/src/plugins/accessible
    Makefile:246: recipe for target sub-accessible-make_default failed
    make[1]: *** [sub-accessible-make_default] Error 2
    make[1]: Leaving directory /home/newbie/Desktop/qt-everywhere-opensource-src-4.8.6/src/plugins
    Makefile:448: recipe for target sub-plugins-make_default-ordered failed
    make: *** [sub-plugins-make_default-ordered] Error 2
  • 解决方案
  • 因之前的arm-hisiv300-linux-*与arm-hisiv500-linux-*都没有遇到这种情况,一开始束手无策。

  • 从以上报错信息能够看出,在目录/home/newbie/Desktop/qt-everywhere-opensource-src-4.8.6/src/plugins/accessible/widgets编译报错。
  • cd /home/newbie/Desktop/qt-everywhere-opensource-src-4.8.6/src/plugins/accessible/widgets && make
  • 技术图片
  • 根据报错内容,修改文件:

    bool
    QAccessibleTable2::unselectColumn(int column) { if (!view()->model() || !view()->selectionModel()) return false; QModelIndex index = view()->model()->index(0, column, view()->rootIndex()); if (!index.isValid() || view()->selectionMode() & QAbstractItemView::NoSelection) return false; view()->selectionModel()->select(index, QItemSelectionModel::Columns & QItemSelectionModel::Deselect); return true; } 改为: bool QAccessibleTable2::unselectColumn(int column) { if (!view()->model() || !view()->selectionModel()) return false; QModelIndex index = view()->model()->index(0, column, view()->rootIndex()); if (!index.isValid() || view()->selectionMode() & QAbstractItemView::NoSelection) return false; view()->selectionModel()->select(index,QItemSelectionModel::SelectionFlags(QItemSelectionModel::Columns & QItemSelectionModel::Deselect)); return true; }

     

  • 重新编译安装,即可。

基于Hisi3521DV200平台移植Qt4.8.6

标签:target   mbed   mouse   ||   tps   comm   idt   headers   val   

原文地址:https://www.cnblogs.com/-Newbie/p/12942379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!