移植 Qt 至 tiny210 详细过程
实验所需资源:
- tiny210(cortex-a8)
- QT 版本:5.6.2
- PC 环境:UBUNTU
- tslib:tslib-1.4
- 交叉工具链:4.5.1
- 开发板已装载好 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 详细过程的更多相关文章
- UCOS2_STM32F1移植详细过程(四)
Ⅰ.概述 上一篇文章是讲述uC/OS-II Ports下面os_cpu_a.asm.os_cpu_c.c和os_cpu.h文件底层端口代码的移植(修改)和说明,接着上一篇文章来讲述关于UCOS移植应用 ...
- UCOS2_STM32F1移植详细过程(三)
Ⅰ.概述 上一篇文章是讲述ST芯片相关的配置和OS裁剪相关的配置,接着上一篇文章来讲述关于UCOS的移植,该文主要针对uC/OS-II Ports下面os_cpu_a.asm.os_cpu_c.c和o ...
- UCOS2_STM32F1移植详细过程(二)
Ⅰ.概述 打开上一篇文章新建的工程,是提取的ST标准库里面源代码文件和UCOS工程包源代码文件.下载过的朋友可能会知道,直接编译那个工程会有大片的错误和警告,原因在于那个工程是没有经过修改源代码的工程 ...
- UCOS2_STM32F1移植详细过程(一)
Ⅰ.概述 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统.UCOS移植相关平台: 系统平台:µC/OS-II (最新V2.92版) 硬件平台:STM32F1 ...
- UCOS2_STM32移植详细过程(汇总)
Ⅰ.概述 笔者发现一个问题,很多初学者,甚至很多工作一两年的人,他们有一种依赖的思想,就是希望从别处获取的软件代码不做任何修改,直接可以运行或者使用.笔者想说,实践才是检验真理的关键,实践才是掌握知识 ...
- UCOS2_STM32F1移植详细过程
源:UCOS2_STM32F1移植详细过程(三) UCOS2_STM32移植过程.系统内核.事件描述(汇总)
- STM32F0xx_EXIT中断配置详细过程
Ⅰ.概述 EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种.因此,EXIT在实际项目开发中也是比较常见的一种. STM32F0中外部中断EXIT属于中断和事件的 ...
- STM32F0xx_ADC采集电压配置详细过程
前言 关于ADC这一块的功能基本上也算是CortexM芯片的标配了.ST的每一块芯片都有这个功能,只是说因型号不同,通道数.位数等有所不同.STM8的芯片大多数都是10的,也就是说分辨率可达到:参考电 ...
- Qt创建窗体的过程
版权声明 本文为原创作品,请尊重作者的劳动成果.转载必须保持文章完整性,并以超链接形式注明原始作者“ tingsking18”和 主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口 ...
随机推荐
- Java Web服务器的联机交易
我们知道服务器可以对外部的请求进行应答 ,在BS架构中,通过浏览器可以向Apache Tomcat或者WebSphere服务器发送请求.但是可能存在请求的渠道不是浏览器的情况,他有可能是另外一个jav ...
- h5的改进:
新元素画布canvas: HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成音频audio视频video语义性: article, nav ...
- jQuery-事件命名空间
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- OpenFlow学习笔记
Software-Defined Networking Network intelligence is (logically) centralized in software-based SDN co ...
- WSGI and Paste学习笔记
The Problem Lots of web frameworks Zope, Quixote, Webware, SkunkWeb and Twisted Web etc Applications ...
- 【DocFX文档翻译】DocFX 入门 (Getting Started with DocFX)
DocFX 入门 1. DocFX 是什么? DocFX 是一个基于.NET的API文档生成器,当前支持 C# 和 VB. 它可以通过你的代码中的三斜杠注释生成 API 参考文档.同样也支持你使用 M ...
- [转]kaldi基于GMM做分类问题
转自:http://blog.csdn.net/zjm750617105/article/details/55211992 对于每个类别的GMM有几种思路: 第一是将所有训练数据按类别分开,每类的数据 ...
- BCrypt加密算法
用户表的密码通常使用MD5等不可逆算法加密后存储,为防止彩虹表破解更会先使用一个特定的字符串(如域名)加密,然后再使用一个随机的salt(盐值)加密. 特定字符串是程序代码中固定的,salt是每个密码 ...
- Hadoop 多表关联
一.实例描述 多表关联和单表关联类似,它也是通过对原始数据进行一定的处理,从其中挖掘出关心的信息.下面进入这个实例. 输入是两个文件,一个代表工厂表,包含工厂名列和地址编号列:另一个代表地址列,包含地 ...
- WHERE 子句用于规定选择的标准
WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句. (也称条件查询语句) 语法SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 下面的& ...