前阵子移植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. web开发中的多线程死锁问题,避免死锁

    1.什么是死锁,产生死锁的原因,和产生死锁的必要条件 所谓死锁(DeadLock),是指多个进程或线程在运行过程中因争夺资源而造成的一种僵局,当进程或线程处于僵局时,若无外力作用,它们将无法再向前推进 ...

  2. beanutils获取带参数get方法

    public Employee getEmployee(int index) {        return new Employee();    } 1.PropertyUtils.getIndex ...

  3. 关于WCF的一些知识点

    首先,WCF和WebService一些区别1,WCF支持多中通信协议,http/https tcp/udp/msmq.命名管道,对等网,消息可达性,事物流等.2,WCF可以与ASP.NET集成,共享同 ...

  4. SpecFlow

    SpecFlow http://blog.csdn.net/yujunwu2525/article/details/7839859 将业务需求与.NET代码结合起来 SpecFlow旨在弥合领域专家与 ...

  5. SZU:A12 Jumping up and down

    Judge Info Memory Limit: 32768KB Case Time Limit: 10000MS Time Limit: 10000MS Judger: Number Only Ju ...

  6. SQL Server跨网段(跨机房)FTP复制

    SQL Server跨网段(跨机房)FTP复制 2013-09-24 17:53 by 听风吹雨, 273 阅读, 0 评论, 收藏, 编辑 一. 背景 搭建SQL Server复制的时候,如果网络环 ...

  7. Unicode(UTF&UCS)深度历险

    Unicode(UTF&UCS)深度历险 计算机网络诞生后,大家慢慢地发现一个问题:一个字节放不下一个字符了!因为需要交流,本地化的文字需要能够被支持. 最初的字符集使用7bit来存储字符,因 ...

  8. 项目结构的设计(iOS篇)

    项目结构的设计(iOS篇) 本文附带源码:YoungHeart-Chapter-02.zip 在设计任何一个框架之前,都应规划好项目结构. 假定Git作为我们的项目管理工具.我们要建立两个仓库,一个用 ...

  9. wp7之换肤原理简单分析

    wp7之换肤原理简单分析 纠结很久...感觉勉强过得去啦.还望各位大牛指点江山 百度找到这篇参考文章http://www.cnblogs.com/sonyye/archive/2012/03/12/2 ...

  10. C++函数调用

    C++函数调用(1) 这篇博客名字起得可能太自大了,搞得自己像C++大牛一样,其实并非如此.C++有很多隐藏在语法之下的特性,使得用户可以在不是特别了解的情况下简单使用,这是非常好的一件事情.但是有时 ...