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

移植 Qt 至 tiny210 详细过程

时间:2018-04-27 02:38:07      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:build   thread   -o   apt-get   lda   过程   ade   sse2   lob   

实验所需资源:

  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 的工具链。

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

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

移植 Qt 至 tiny210 详细过程

标签:build   thread   -o   apt-get   lda   过程   ade   sse2   lob   

原文地址:https://www.cnblogs.com/GyForever1004/p/8955665.html

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