前阵子移植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. TodoList开发笔记 – Part Ⅲ

    本节开始对TodoList项目的客户端进行开发 一.初步了解JQuery 其实我在学校时有接触过一段时间的Web开发,虽然代码量不多也不复杂,但也已经感受到了各浏览器对Web各项标准的恶意,Web界对 ...

  2. mysql 备份数据

    想在mysql库中某些数据备份下来. 1,创建一个新表,我们应需要保持表的原有属性 CREATE TABLE A LIKE B 这种方式可以把主键和索引一起copy过来. 2,把需要数据copy到新表 ...

  3. 利用Bootstrap框架制作查询页面的界面

    UI设计实战篇——利用Bootstrap框架制作查询页面的界面   Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太 ...

  4. 调用MobileAPI的设计(iOS篇)

    调用MobileAPI的设计(iOS篇) 这一节讲如何发起网络请求. iOS用于调用MobileAPI的第三方组件很多,我们这里采用的是以下组件: 1)ASIHTTPRequest,用于请求Mobil ...

  5. C#如何判断线程池中所有的线程是否已经完成之Demo

    start: System.Threading.RegisteredWaitHandle rhw = null; new Action(() => { ; i < ; i++) { new ...

  6. tomcat的OutOfMemoryError内存溢出解决方法

    在tomcat安装路径bin目录下 打开catalina.bat在第一行加上 set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSi ...

  7. .NET:再论异常处理,一个真实的故事

    .NET:再论异常处理,一个真实的故事 背景 关于是使用枚举或布尔类型来表示方法执行状态,还是使用异常,可以参考这里的文章:http://www.google.ee/search?q=site%3Aw ...

  8. 博客已迁移到lizhug.com

    新的博客地址 http://lizhug.com

  9. 分布式EventBus的Socket实现 - 发布订阅

    分布式EventBus的Socket实现 - 发布订阅 在这篇文章中,EventBus实现 - 发布订阅 - XML加载 所适用的范围只是本机的事件传播,要是牵涉到多台服务器之间的事件传播就不行了,解 ...

  10. JAVA多线程经典问题 -- 生产者 消费者

    工作2年多来一直也没有计划写自己的技术博客,最近辞职在家翻看<thingking in JAVA>,偶尔看到了生产者与消费者的一个经典的多线程同步问题.本人在工作中很少使用到多线程以及高并 ...