• 移植 Qt 至 tiny210 详细过程


    实验所需资源:

    1. tiny210(cortex-a8)
    2. QT 版本:5.6.2
    3. PC 环境:UBUNTU
    4. tslib:tslib-1.4
    5. 交叉工具链:4.5.1
    6. 开发板已装载好 Linux

    编译 tslib

    可能需要安装的库:

    sudo apt-get install autoconf
    sudo apt-get install automake
    sudo apt-get install libtool
    

    编译安装步骤如下:

    tar xzf tslib-1.4.tar.gz
    cd tslib
    ./autogen.sh 
    
    mkdir tmp
    echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
    ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp
    
    make
    make install
    

    更改 tslib 配置文件

    sudo vim tmp/etc/ts.conf 
    去掉 # module_raw input 前面的“#”和空格
    

    编译 QT5.6.2

    解压 QT 后,进入到该文件夹。

    构造一个 build.sh 脚本,内容如下:

    #!/bin/bash
    
    ./configure 
      -no-c++11 
      -prefix /Qt5 
      -opensource 
      -release 
      -confirm-license 
      -xplatform linux-arm-gnueabi-g++ 
      -shared 
      -qt-zlib 
      -no-gif 
      -qt-libjpeg 
      -no-opengl 
      -no-cups 
      -no-glib 
      -no-dbus 
      -no-rpath 
      -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 
      -no-avx 
      -no-openssl 
      -nomake tools 
      -qreal float 
      -qt-libpng 
      -tslib 
      -verbose 
      -nomake examples 
      -I /Qt5.6/tslib/tmp/include 
      -L /Qt5.6/tslib/tmp/lib
    

    修改配置文件:

    vim /qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
    
    加上:
        QT_QPA_DEFAULT_PLATFORM = linuxfb
        QMAKE_CFLAGS  += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv7-a -mtune=cortex-a8
        QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv7-a -mtune=cortex-a8
        
    将
      # 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 g++.conf
      QMAKE_CC = arm-linux-gnueabi-gcc -lts -ldl
      QMAKE_CXX = arm-linux-gnueabi-g++ -lts -ldl
      QMAKE_LINK = arm-linux-gnueabi-g++ -lts -ldl
      QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++ -lts -ldl
    

    chmod 777 build.sh
    ./build.sh
    make -J4
    make install

    QT 编译过程中可能需要的库

    UBUNTU 使用以下命令安装

    xcb 库:

    sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev
    

    一开始我是用 4.3.2 版本的工具链来编译 QT 的,到最后却报了

    ld: hidden symbol `void QQmlThread::postMethodToThread<QQmlDataBlob*, QQmlDataBlob*, QQmlDataLoaderThread>(void (QQmlDataLoaderThread::)(QQmlDataBlob), QQmlDataBlob* const&)' isn't defined
    

    这个错误,查了官方的资料得知 Bug with GCC versions < 4.4.x,感觉瞬间凉凉~ 只好换成了 4.5.1 的工具链。

    后续实验见本分类下的其它文档。

    有什么问题欢迎探讨,需要资源的可以留言。_

  • 相关阅读:
    实时信号阻塞队列大小测试
    实时信号和非实时信号
    [Linux]关于sigprocmask函数的讨论
    java中Map集合的常用方法 (转)
    佛跳墙
    百万数据查询效率提高方法(转)
    bootstrap table 前后端分页(超级简单)
    bootstrap table 分页序号递增问题 (转)
    Spring boot+mybatis+thymeleaf 实现登录注册,增删改查
    js弹出对话框的三种方式(转)
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8955665.html
Copyright © 2020-2023  润新知