以下采用的系统为ubuntu16.04,开发板为迅为iTOP4412,4.3寸屏。 
下载qt5.7源码qt-everywhere-opensource-src-5.7.0.tar.xz 
http://www.download3k.com/Install-Qt.html

下载ARM交叉编译工具arm-2014.05-29-arm-none-Linux-gnueabi-i686-pc-linux-gnu.tar.bz2 
http://www.veryarm.com/arm-none-linux-gnueabi-gcc

下载tslib1.4 
http://vdisk.weibo.com/s/AcUHxOERV2k0?sudaref=www.baidu.com

arm交叉编译器arm-2014的安装

将“arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2”解压到Ubuntu 系统的文件夹“/usr/local/arm”中。 
然后修改环境变量,切换到home目录,然后输入命令“vim .bashrc”,打开设置环境变量的文件“.bashrc”,将环境变量修改为“export PATH=$PATH:/usr/local/arm/arm-2014.05/bin” 
保存退出,然后更新一下环境变量,输入命令“source .bashrc”。

source .bashrc
  • 1
  • 1

接着测试一下,编译器路径设置的对不对。如下图,在Ubuntu 命令行中输入命令”arm”, 
然后按键盘”Tab”,出现编译器“arm-none-linux-gnueabi-gcc-4.8.2”,这就说明编译 
器路径设置正确。

交叉编译tslib1.4

对触摸屏信号的获取、校正、滤波处理,均采用开源的tslib,本文采用的tslib版本为最新的tslib1.4(可以从本文提供的链接中下载tslib1.4)。 
1.将下载好的tslib1.4拷贝到/home/lz/transplant目录下(可以根据自己的系统选择某一目录),然后执行解压缩命令

tar -vxf tslib-1.4.tar.gz
  • 1
  • 1

切换到tslib目录:

cd tslib
  • 1
  • 1

安装交叉编译tslib必须的一些工具(可以先查看是否已安装,ubuntu16.04自带这些工具,可跳过)

sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

2.利用脚本写编译过程 
在tslib文件夹下新建文件configTslib14.sh

vi configTslib14.sh
  • 1
  • 1

内容如下:

#!/bin/sh
make clean && make distclean
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/opt/tslib1.4 --cache-file=arm-linux.cache
make && make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

然后运行configTslib14.sh

./configTslib14.sh
  • 1
  • 1

执行结束后,我们查看一下是否安装成功,执行命令:

ls /opt/tslib1.4
  • 1
  • 1

如果出现bin,etc,include,lib这4个目录,如下图所示,说明交叉编译并安装tslib成功。 

交叉编译QT5.7.0

将下载的qt-everywhere-opensource-src-5.7.0.tar.gz执行如下命令解压:

tar -vxf qt-everywhere-opensource-src-5.7.0.tar.gz
  • 1
  • 1
cd qt-everywhere-opensource-src-5.7.0
  • 1
  • 1

修改交叉编译架构用到的信息:

gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
  • 1
  • 1

修改如下图所示:

#
# qmake configuration for building with arm-linux-gnueabi-g++
# MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf) # modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++ # modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

创建一个脚本文件,用于生成Makefile,执行命令

gedit autoConfigure.sh
  • 1
  • 1

输入下面内容并保存:

#!/bin/sh
./configure \
-v \
-prefix /opt/qt-5.7.0 \
-release \
-opensource \
-no-accessibility
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-zlib \
-tslib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-I/opt/tslib1.4/include -L/opt/tslib1.4/lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

其中-prefix /opt/qt-5.7.0代表我们编译完QT5.4.1后要安装地址;-tslib代表QT对触摸板的支持,-I 和 -L后面分别为为第一步编译tslib的include和lib的安装目录。 
执行命令:

chmod 777 qt.configure.sh
./autoConfigure.sh
  • 1
  • 2
  • 1
  • 2

上述命令自动生成Makefile文件。 
执行命令启动编译:

make
  • 1
  • 1

编译大概2个小时。 
编译结束后,执行安装命令:

sudo make install
  • 1
  • 1

我们切换到目标目录下看看是否安装成功:

cd /opt/qt-5.7.0
ls
  • 1
  • 2
  • 1
  • 2

如图所示:

将/opt/qt-5.7.0和/opt/tslib1.4 拷贝到开发板的文件系统中对应的目录中。

设置QT的交叉编译环境

安装qtcreator 
进入qtcreator开发环境 
在菜单中选择Tools——Options,在弹出的对话框中,选择Build & Run,选择标签Compilers,按下图设置,选择C++交叉编译器,如下图所示: 

切换到Qt Versions标签,点击“Add”按钮,选择qmake,如图所示: 

选择完成,按“OK”按钮,设置如图所示: 
切换到Kits标签,点击“Add”按钮,然后设置如下图所示: 

在4412开发板上配置tslib并交叉编译一个能够在4412开发板上运行的QT应用程序

把字库Ubuntu_L.ttf 等字库拷贝到 /opt/qt-5.7.0/lib/fonts

在开发板串口命令窗口中输入:

vi /etc/profile
  • 1
  • 1

如下图所示: 
 
将其修改为以下内容

export TSLIB_ROOT=/opt/tslib1.4
export QT_ROOT=/opt/qt-5.7.0
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=input
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=tslib:/dev/input/event2
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib:$TSLIB_ROOT/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_GENERIC_PLUGINS=tslib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

保存退出,执行命令(一定要执行,否则可能报错):

source /etc/profile
  • 1
  • 1

然后在串口命令窗中输入 vi /opt/tslib1.4/etc/ts.conf 来配置触摸屏 
 
把第二行的注释去掉,把ts设置成输入模式(注意把前面的空格也去掉) 

下面编写测试程序来测试开发板上 
打开qtcreator,新建项目,拖几个按钮上去,如下图所示 

编译得到可执行程序untitled,查看一下,可以看到其信息显示为arm平台,如下图所示 

将untitled拷贝到开发板中文件系统的/bin目录,运行该程序。

[root@iTOP-4412]# /bin/untitled 
  • 1
  • 1

看一下板子: 

http://blog.csdn.net/u012175418/article/details/52704734

QT5.7交叉编译安装到arm(好多系列文章)的更多相关文章

  1. 【转帖】嵌入式4412开发板QT5.7编译安装到arm

    QT5.7.0+UBUNTU16.04+ARM-NONE-LINUX-GNUEABI4.8+busybox最小LINUX系统 Orandragon记录 本文转自迅为4412开发板群:http://to ...

  2. 界面美化.CStatic控件的美化(好多系列文章)

    http://www.cnblogs.com/20090802/archive/2010/09/17/1829283.html 静态控件也是比较常用的控件,在VS开发环境中用的应该挺频繁的吧. 其实m ...

  3. 【Linux开发】为qt-embedded添加jpeg库的交叉编译方法for arm

    看了一个文章: =====================================谢论坛内各位的帮助,我的qt/e2.3.10和qtopia2.1.1终于全部编译通过. 下面是jpeg和uui ...

  4. VMWare 11安装操作系统 - 初学者系列 - 学习者系列文章

    在2010年的时候,我写过一篇关于VMWare的安装操作系统的博文.但是今天在QQ群里有人问起VMWare安装操作系统的问题,虽然回答了,但是回头看了下当时那篇博文,决定重新写一文. 首先要获取VMW ...

  5. openstack系列文章(1)devstack安装测试Queens

    1.在OpenStack 圈子中,有这么一句名言:”不要让朋友在生产环境中运行DevStack.但是初学者在没有掌握OpenStack CLI的情况下用devstack安装测试环境还是不错的.本系列文 ...

  6. 一点理解之 CmBacktrace: ARM Cortex-M 系列 MCU 错误追踪库

    @2019-02-14 [小记] CmBacktrace: ARM Cortex-M 系列 MCU 错误追踪库,用来将单片机故障状态寄存器值翻译出来输出至终端上以便排错 CmBacktrace: AR ...

  7. Qt5.11.1安装与VS2017配置

    Qt5.11.1安装与VS2017配置 转 https://blog.csdn.net/gaojixu/article/details/82185694 文章目录 Qt5.11.1安装与VS2017配 ...

  8. Hadoop 系列文章(一) Hadoop 的安装,以及 Standalone Operation 的启动模式测试

    以前都是玩 java,没搞过 hadoop,所以以此系列文章来记录下学习过程 安装的文件版本.操作系统说明 centos-6.5-x86_64 [bamboo@hadoop-senior opt]$ ...

  9. VMWare虚拟机安装 - 学习者系列文章

    以前笔者写过一个VMWare虚拟机的安装说明,但是那个版本比较低,已经过时,今天,讲讲VMWare的14版本的安装和使用说明. 首先,下载VMWare 14的安装文件,这里提供一下百度网盘文件: 链接 ...

随机推荐

  1. JQuery 判断某个属性是否存在 hasAttr

    $(".fengye a").each(function () { if (typeof($(this).attr("href")) != "unde ...

  2. SQL Server 2008 安装或卸载时提示“重启计算机失败"的解决办法(转)

    安装或卸载SQL Server 遇到错误提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机.如下图: 解决办法: 1.在开始->运行中输入regedi ...

  3. 常用mysql命令大全

    常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再 ...

  4. php代码加密|PHP源码加密——实现方法

    Encipher - PHP代码加密 | PHP源码加密下载地址:https://github.com/uniqid/encipher 该加密程序是用PHP代码写的,加密后代码无需任何附加扩展,无需安 ...

  5. Pandas简易入门(四)

    本节主要介绍一下Pandas的另一个数据结构:DataFrame,本文的内容来源:https://www.dataquest.io/mission/147/pandas-internals-dataf ...

  6. Python数据结构————二叉查找树的实现

    对于二叉查找树的每个节点Node,它的左子树中所有的关键字都小于Node的关键字,而右子树中的所有关键字都大于Node的关键字. 二叉查找树的平均深度是O(log N). 1.初始化 class Bi ...

  7. 【转】How to view word document in WPF application

    How to view word document in WPF application (CSVSTOViewWordInWPF) Introduction The Sample demonstra ...

  8. ENVI/IDL中.sav和.pro文件用法的不同

    软件envi5.0 sp3 .sav是IDL binaryfile。 安装方法:把ENVIProgramGenerator.sav文件拷贝到…\Exelis\ENVI50\extensions\文件夹 ...

  9. Perl内置变量速查表

    [ 文件句柄 ] $| 如果非零, 则在对当前选定的文件执行写或打印操作后强制清除缓冲区 $% 当前选中文件句柄的当前页码 $= 当前选中文件句柄的当前页面长度 $- 当前选中文件句柄的页面剩余长度 ...

  10. Java学习之路:1、HelloWorld

    似乎每种语言都是从HelloWorld开始的,所以,我的第一个java程序,也应该是这样开始的! 1.配置好jdk后,开始编写HelloWorld.java package second;//这个应该 ...