zoukankan      html  css  js  c++  java
  • 移植 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 的工具链。

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

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

  • 相关阅读:
    Common Lisp 参数传递的几种形式
    EF架构~基于EF数据层的实现
    标准架构~业务层到底是否应该关注数据持久化的方式
    Redis学习笔记~Redis主从服务器,读写分离
    Redis学习笔记~是时候为Redis实现一个仓储了,RedisRepository来了
    MVVM架构~knockoutjs系列之数组的$index和$data
    【Oracle】-【sqlplus / as sysdba登录报错问题】-新用户使用sqlplus / as sysdba登录报错
    Android---App Widget(一)
    Mit 分布式系统导论,Distributed Systems ,lab1 -lab6 总结,实验一到实验六总结
    GDAL切割重采样遥感图像
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8955665.html
Copyright © 2011-2022 走看看