前阵子移植qt4.8.5到板子上成功后,总想着qt4有点旧,于是就想着玩qt5,之前都是在Windows7上写qt,
写了个游戏,感觉还不错,但毕竟不能只能在PC机上跑,现在由于项目需要,要将qt搞到IMX6板子上,其
中过程也不复杂,就是编译qt太耗时间,由于我的机器比较慢,编译一个qt要两个半钟,大家的可能快些
要移植qt5.5.0到板子上,首先得准备几样东西
虚拟机VMware-workstation-full-12.1.0-3272444 我用的是这个
fedora镜像:Fedora-Live-Workstation-i686-21-5.iso 有些人喜欢用ubuntu的也可以
官网可以下qt: qt-everywhere-opensource-src-5.4.0.tar.gz和qt-opensource-linux-x86-5.5.0.run
交叉编译器:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz

虚拟机的安装和fedora21的安装就不说了,一般都是一路畅通的,安装好后调通网络,我喜欢用桥接方式桥接到
windows7的无线网卡,这样方便安装软件和遇到问题时安装一些库,用yum -y install xxx就可以安装,这里不展开。
但在后期调试开发板的时候记得要桥接到有线网卡,才能和板子ping的通。

1、交叉编译器的安装
这个网上很多教程,不再赘述。
2、qt的编译
先mkdir /opt/qt5.5.0 用于后续安装qt
将qt解压后,执行cd qt-everywhere-opensource-src-5.5.0/
执行vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
在qmake.conf文件中添加
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
并且在编译器名字arm后面添加none,下面是我修改后的,自己对照下
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

#下面三行是我添加的
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

# modifications to g++.conf
#下面八个都加上none
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)
其实你用gedit也行,可能方便点。
然后vi qt.pro
将下面两行注释掉
#addModule(qt3d, qtdeclarative qtimageformats)
#addModule(qtcanvas3d, qtdeclarative)
我们不用3d

然后执行./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /opt/qt5.5.0 -no-c++11 -no-opengl -dbus -no-iconv
注意要加上-no-iconv 和 -dbus 不然后续很多问题,其实也可以解决,就是比较麻烦,后面的参数大家可以用./configure -help
查看,上面注释掉的两行理论上也可以用参数来屏蔽掉才对,懒得找了。
配置成功后就执行make 等两个钟吧,这里之前一定要配置好参数,我就是有些没加上然后make了一个多钟
然后报错,白等了一个多钟。make完成功后执行最后一步make install ,这个很快,几分钟的事情。

下面就要开始调试了
先将刚安装好的qt5.5.0打包
cd /opt/
tar czvf qt5.5.0.tar.gz qt5.5.0
然后就将压缩包拷到U盘,放到板子上解压到/opt下,也可以用tftp下载,前提是要配好网络
将qt5.5.0.tar.gz放到/var/lib/tftpboot下,开发板配好ip,用ifconfig eth0 172.19.19.230 netmask 255.255.254.0可以
配开发板ip,我的fedora的ip是172.19.19.250,注意桥接到有线网卡,并且有线网卡配置好同网段的ip,开发板用
网线连接好笔记本。互相能ping通后执行tftp -g -r qt5.5.0.tar.gz 172.19.19.250
下载成功后同样解压到/opt下,以后写qt程序经常需要调试,所以以后会极少用U盘,想想每编译一次就要用U盘拷到板子上,一天
要拔来拔去几百回。所以用网络下载是比较好的,但个人还是喜欢用nfs挂载,nfs挂载方式这里就不说了,自己去学,不难。

解压好后就把变量导一下,在板子上vi /etc/profile
在后面添加
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_TSEVENTTYPE=input
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH

export PATH=$TSLIB_ROOT/bin:$PATH

export QT_ROOT=/opt/qt5.5.0
export LD_LIBRARY_PATH=$QT_ROOT/lib:$LD_LIBRARY_PATH
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
结束。
TSLIB自己想办法得到吧,我这里板子上有现成的,我就直接拿来用了。路径要配对
不过我试了下,qt5不用tslib库也可以跑起来,qt4就不行。
测试下:cd /opt/qt5.5.0/examples/touch/fingerpaint/
./fingerpaint

结果报错:
process 1053: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/etc/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not built with -rdynamic so unable to print a backtrace
Aborted

没事,执行 dbus-uuidgen > /etc/machine-id
重新来一次,成功了。。。
如果遇到其他什么错误,可以参考
http://www.cnblogs.com/subo_peng/p/5577716.html
qt-opensource-linux-x86-5.5.0.run就自己装了。。

qt5.5.0成功移植到IMX6中的更多相关文章

  1. Qt5.7.0移植到4412

    搞了几天,终于把Qt5.7移植到4412上,下面是一些自己移植过程中的记录,希望能帮到其他人. 一.需要下载的文件, 下载qt5.7源码qt-everywhere-opensource-src-5.7 ...

  2. qt-5.6.0 移植之qt文件系统的建立

    经过差不多两个星期的奋斗,终于在板子里面跑起来了qt 程序,虽然现在还没有把触摸屏驱动加上去,但是我相信已经不远了!!!!! 在前两篇的随笔里面 , 已经编译好了最纯净的文件系统以及交叉编译完成了qt ...

  3. qt-5.6.0 移植之qt源码编译

    其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...

  4. 开源物联网通讯框架ServerSuperIO,成功移植到Windows10 IOT,在物联网和集成系统建设中降低成本。附:“物联网”交流大纲

    [开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 一.概述 经过一个多月晚上的时间,终于把开源物联网通讯框架ServerSuperIO成功移植到Windows10 IOT上, ...

  5. Ubuntu中Qt5.7.0无法输入中文

    把libfcitxplatforminputcontextplugin.so复制到安装的Qt目录下的两个文件夹中 sudo apt install fcitx-frontend-qt5 sudo cp ...

  6. 使用MSYS2环境中编译Qt5.5.0的补丁

    Qt的configure脚本对MinGW静态编译支持不太完善,总有这样那样的问题.如果你不嫌麻烦,而且可以接受高版本的Qt的话,可以考虑使用我做的补丁在MSYS2环境中编译.Qt5.4.2的补丁 Qt ...

  7. qt-5.6.0 移植之tslib 配置及编译

    tslib 是qt启动时的一个触屏校正检验程序. 它的配置以及编译比较简单. 第一步, 下载tslib源码包: http://download.csdn.net/detail/MKNDG/329156 ...

  8. Qt5.3.0的安装与测试

    Qt5.3.0的安装与测试(交叉编译,用于arm,支持tslib触摸屏) 本次移植可以使用触摸屏. 首先下载源码包: http://download.qt.io/official_releases/q ...

  9. geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑

    目录 前言 若干坑 总结 一.前言        近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...

随机推荐

  1. CruiseControl.Net全面实现持续集成

    使用CruiseControl.Net全面实现持续集成   持续集成想必大家很多人都听说过,甚至都实践过,最近我又一次亲历了一次持续集成,现将我的经验分享给大家.关于持续集成的理论在本文概不涉及,本文 ...

  2. DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计?

    DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计? 写在前面 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领域模型的 ...

  3. [转]Android与电脑局域网共享之:Samba Client

    在上一篇文章中我提到如何在Android手机上建立Windows共享服务器,现在来说说一个反向的问题,就是,如何在Android手机上访问Windows计算机中的共享资源,当然,前提也是需要软件,这里 ...

  4. C# 6.0 功能预览

    C# 6.0 功能预览 (一) 一.索引的成员和元素初始化 1.1 原始初始化集合 Dictionary 1.2 键值初始化集合 Dictionary 1.3 运算符 $ 初始化集合 Dictiona ...

  5. Memcached快递上手之C#

    Memcached快递上手之C# Memcached是开源高性能分布式缓存组件,目前已经广泛应用各类互联网领域. 具有多种语言的客户端开发包,包括:Perl/PHP/JAVA/C/Python/Rub ...

  6. C# 脚本代码自动登录淘宝获取用户信息

    C# 脚本代码自动登录淘宝获取用户信息   最近遇到的一个需求是如何让程序自动登录淘宝, 获取用户名称等信息. 其实这个利用SS (SpiderStudio的简称) 实现起来非常简单. 十数行代码就可 ...

  7. 基于 Aliexpress API 的小程序 : 批量 Copy 产品到不同的店铺

    第一个基于 Aliexpress API 的小程序 : 批量 Copy 产品到不同的店铺 还没来得及用 API 重写软件, 先写个小程序来缓解一下手工压力: 批量Copy 产品到不同的店铺. 开网店 ...

  8. ASP.NET基础之HttpHandler学习

    ASP.NET基础之HttpHandler学习 经过前两篇[ASP.NET基础之HttpModule学习]和[ASP.NET基础之HttpContext学习]文章的学习我们对ASP.NET的基础内容有 ...

  9. SSH的整合

    SSH的整合 struts2和hibernate的配置我这里就不多说了,先把两个有关的东西说下.一个是所有的包.struts2+hibernate3+spring2.5我包准备放上去给大家下载. ht ...

  10. this关键字、访问修饰符、super关键字

    this关键字.访问修饰符.super关键字 Java关键字this只能用于方法方法体内,而且只能用在非静态方法内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个 ...