• QT/Embedded 2.3.8 MX21ADS板移植


    QT/Embedded 现在的最新版本是Qtopia Core 4,网上找很久都没有相关教材,还是稳打稳扎用QT/embedded 2的版本来做。

    目标平台是Freescale MX21,linux2.4内核,开发平台是RH9,下面是移植过程:
    1. 下载qt-embedded和tmake
    ftp://ftp.qtopia.org.cn/mirror/ftp.trolltech.com/qt/source/qt-embedded-2.3.8.tar.gz
    ftp://ftp.qtopia.org.cn/mirror/ftp.trolltech.com/freebies/tmake/tmake-1.13.tar.gz
    cd /work
    tar -zxf qt-2.3.8-embedded.tar.gz
    cd qt-2.3.8
    tmake解压, 任意目录皆可,只要设置好TMAKEPATH环境变量,这里为了方便将tmake解压到tmake目录.
    2 设置环境变量
    TMAKE=/work/qt-2.3.8/tmake
    TMAKEPATH=/work/qt-2.3.8/tmake/lib/qws/linux-arm-g++
    QTDIR=/work/qt-2.3.8/
    QTEDIR=/work/qt-2.3.8/

    PATH=$TMAKE/bin:$PATH
    export PATH QTDIR QTEDIR TMAKEPATH

    3. 修正bug
    tmake和qt-embedded-2.3.8在arm平台上有几个小bug, 在链接时使用arm-linux-gcc而不是arm-linux-g++
    首先修正tmake
    打开tmake/lib/qws/linux-arm-g++/下的tmake.conf
    将其中的TMAKE_LINK和TMAK_LINK_SHLIB都修正为arm-linux-g++
    TMAKE_LINK = arm-linux-g++
    TMAKE_LINK_SHLIB = arm-linux-g++
    然后就是qt-embedded下configs/linux-arm-g++{static/shared/static-debug/shared-debug}这几个arm配置中的定义SYSCONF_LINK SYS_CONF_LINK_SHLIB 都修正为arm-linux-g++

    代码中也有一处:
    src/kernel/qapplicaion_qws.cpp 中的2148行 beep函数, 好像arm是默认不处理sound的,所有要根据qsound.h中的QT_NO_SOUND宏将其修改一下

    #ifndef QT_NO_SOUND

    QSound *qt_beep_sound = 0;

    void QApplication::beep()
    {
        if ( qt_beep_sound )
        qt_beep_sound->play();
    }
    #else
    void QApplication::beep()
    {
    }
    #endif



    4,配置编译
    ./configure -xplatform linux-arm-g++ -no-opengl -qt-libpng -qt-zlib -no-xft -static -no-qvfb -L/home/opt/mx21_tools/metrowerks/b56/Embedix/home/salem/project/MX21-b56/build/dev_image/usr/lib

    make

    如此简单,大公告成!
    ^_^

  • 相关阅读:
    Spark Streaming(一)
    ACID
    SparkSQL
    scala样例类
    centos7 防火墙有关命令
    HBase优化
    scp
    HBase与Hive
    HBase与MapReduce交互
    Hadoop安全模式
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314597.html
Copyright © 2020-2023  润新知