Qt 4.7.2移植到ARM教程
Qt的移植包括步骤如下:
1、下载并安装VMware WorkStation 12(最好比较高级的版本,早期的版本共享目录在虚拟机里可能显 示不了)。
2、下载ubuntu 14.0.4(最好是lts版本,免去要自己去安装g++等一些需要的软件)。
3、创建虚拟机并开启root用户
- 按下Ctrl+Alt+T组合键打开终端命令窗口,输入并执行sudo passwd root,设置root用户密码。
- 进入目录/usr/share/lightdm/lightdm.conf.d,打开50-unity-greeter.conf文件,在后面追加以下内容并保存,重启后就可以选择以root用户登录了。
user-session=ubuntu
greeter-show-manual-login=true
all-guest=false
4、环境准备
- 安装automake、libtool 和主机上的Qt工具
$ sudo apt-get install automake autoconf libtool m4
$ sudo apt-get install libX11-dev libXext-dev libXtst-dev libXrender-dev
$ sudo apt-get install libqt4-core libqt4-dev libqt4-webkit qt4-demos
- 安装交叉编译器
将交叉编译器压缩包(gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2)放在/opt目录下,并解压在此处(arm-linux-gnueabihf),编译/etc/profile文件加入
交叉编译器路径(export PATH=/opt/arm-linux-gnueabihf/bin:$PATH)。
- 重启虚拟机,使环境变量生效,使用命令arm-linux-gnueabihf-gcc -v 检查环境是否生效。
5、下载tslib和Qt
- 到 github 下载 tslib最新版,地址:https://github.com/kergoth/tslib,下载后文件名为:tslib-master.zip。
- 到 Qt 官网下载合适的 Qt 版本,地址:http://download.qt-project.org/archive/qt/。本教程以 4.7.2为例,下载的压缩包名称为: qt-everywhere-opensource-src-4.7.2.tar.gz。
6、编译安装tslib
- 新建目录/opt/qt-4.7.2-arm,tslib和qt都会安装在该目录(很多arm板都只开放opt目录,安装这这里,以后移到arm板上比较方便)。
- 解压tslib,解压后为tslib-master。
- 编译安装tslib
$ cd tslib-master
$ ./autogen.sh
$ ./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --host=arm-linux-gnueabihf --prefix=/opt/qt-4.7.2-arm ac_cv_func_malloc_0_nonnull=yes
$ make
$ sudo make install
完成后,tslib会按安装到主机/opt/qt-4.7.2-arm 目录下。
进入下一步之前,先将主机中 //opt/qt-4.7.2-arm/etc/ts.conf 文件第二行“#module_raw input”的注释去掉,变为“module_raw input”,注意一定要顶格。
7、编译安装qt
- 解压qt-everywhere-opensource-src-4.7.2.tar.gz到/op目录下,重命名为qt-opensource-src.4.7.2。
- 在qt-opensource-src.4.7.2/mkspace/qws目录将linux-arm-g++拷贝一份并重命名为linux-am335x-g++。
- 进入linux-am335x-g++文件夹,修改qmake.conf文件内容
#
# qmake configuration for building with arm-linux-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_INCDIR = /opt/qt-4.7.2-arm/include
QMAKE_LIBDIR = /opt/qt-4.7.2-arm/lib
QMAKE_CC = arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)
- 配置Qt
./configure -opensource -embedded armv7 -xplatform qws/linux-am335x-g++ --prefix=/opt/qt-4.7.2-arm -no-cups -nomake examples -nomake demos -qt-zlib -qt-libjpeg -qt-libmng -qt-libpng -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed -no-gfx-qvfb -qt-gfx-vnc -qt-gfx-multiscreen -qt-kbd-tty -qt-mouse-tslib -no-openssl -no-phonon -no-phonon-backend -no-nas-sound -no-exceptions -svg -no-webkit -no-qt3support -no-multimedia -no-xmlpatterns -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/opt/qt-4.7.2-arm/include -L/opt/qt-4.7.2-arm/lib -confirm-license
make
make install
完成后,qt4.7.2会安装到主机/opt/qt-4.7.2-arm目录下。
- 设置环境变量,编辑/etc/profile文件,在最后添加如下内容
export PATH=/opt/arm-linux-gnueabihf/bin:$PATH
export TSLIB_ROOT=/opt/4.7.2
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib
说明:
1、 -embedded armv7:armv7是arm芯片的架构(arm9对应armv5,arm11对应armv6,cortex-a8和cortex-a9对应armv7)
8、安装QT Creator 2.2.0,并设置


9、移植Qt到开发板
将/opt/qt-4.7.2-arm文件夹压缩后,拷贝到开发板/opt目录下再解压,在/etc/profile文件里配置环境
export QTDIR=/opt/qt-4.7.2-arm
export LD_LIBRARY_PATH/$QTDIR/lib;$LD_LIBRARY_PATH
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export QWS_SIZE=800x400
export QWS_DISPLAY=LinuxFb:/dev/fb0(这个根据开发板而定)
export QWS_MOUSE_PROTO=Tslib:/dev/input/mice(这个根据开发板而定)
Qt 4.7.2移植到ARM教程的更多相关文章
- GoAhead2.5移植到ARM教程
1.下载GoAhead2.5 下载地址:https://github.com/embedthis/goahead/releases?after=v3.1.2 2.编译 先解压到虚拟机的/opt目录下, ...
- 【Linux开发】【Qt开发】ARM QT移植详细步骤教程
ARM QT移植详细步骤教程 米尔SAM9X5和A5D3X上默认的Qt版本是4.5.3,当这个版本的Qt库不能满足实际开发需求时,可通过此方法制定Qt开发.运行环境. 移植的步骤如下: 1.下载新版q ...
- iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板
本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编 ...
- iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板
实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统 开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubunt ...
- 将SQLite移植到ARM板上 (转)
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它, 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够 ...
- 怎样将lua移植到arm平台的linux内核
将脚本移植到内核是一件非常酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核.仅仅可惜仅仅支持x86.不支持arm,在网上搜索了下,没有找到 ...
- SQL数据库移植到ARM板步骤
SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点.例如,在Ubuntu或者ARM开发板上被大量应用.下面就简单说一下SQL移植到ARM板的步骤. 下载源代码 (记得在家 ...
- Qt5.4.1移植到arm——Linuxfb篇
Qt5与Qt4对比有很大的改变,其最大的特性在于模块化,并且很明显的是不再见到Qt4用到的qws,Qt5新增了QPA系统,基于QPA使得Qt5移 植到一个新平台非常简单而又具有极强的底层扩展能力:同时 ...
- linux编译Qt+mysql驱动+可执行文件移植目标机
前言: 如果希望自己的Qt/C++程序在目标机上运行,最简单的方法就是在目标机上安装一个Qtcreater[Qtxxx.run],然后编译release的可执行文件,直接拉起即可. 但是有些环境情况比 ...
随机推荐
- Python的日志记录-logging模块的使用
一.日志 1.1什么是日志 日志是跟踪软件运行时所发生的事件的一种方法,软件开发者在代码中调用日志函数,表明发生了特定的事件,事件由描述性消息描述,同时还包含事件的重要性,重要性也称为级别或严重性. ...
- csslint在前端项目中的使用
大家都听说过jslint,eslint,不过你可能没见过csslint,你可能会问csslint有什么用,为什么今天要说csslint,是因为我在开发中遇到一个坑,其实之前不怎么使用csslint的, ...
- 【读书笔记】Android的Ashmem机制学习
Ashmem是安卓在linux基础上添加的驱动模块,就是说安卓有linux没有的功能. Ashmem模块在内核层面上实现,在运行时库和应用程序框架层提供了访问接口.在运行时库层提供的是C++接口,在应 ...
- **iOS发JSON请求中字符串加转义,返回的JSON去转义
iOS中使用NSSerialization把对象转为JSON字符串后,多出来反斜杠的问题 http://segmentfault.com/q/1010000000576646 NSDictionary ...
- .net/c#常用框架/中间件简介
任务调度 Quartz.NET:Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允 许开发人员根据时间间隔 ...
- hdu 1171 有num1个w1 , num2个w2 ……. (母函数)
输入n,代表学院里面有n种设备,并且在下面输入n行,每一行输入v,m代表设备的价格为v,设备的数量是m.然后要求把这些设备的总价值分摊,尽量平分,使其总价值接近相等,最好是相等 比如样例二(1+X10 ...
- 组件库按需加载 借助babel-plugin-import实现
前段时间一直在基于webpack进行前端资源包的瘦身.在项目中基于路由进行代码分离,http://www.cnblogs.com/legu/p/7251562.html.对于公司内部的组件库,所有内容 ...
- Storm(一)Storm的简介与相关概念
一.Storm的简介 官网地址:http://storm.apache.org/ Storm是一个免费开源.分布式.高容错的实时计算系统.Storm令持续不断的流计算变得容易,弥补了Hadoop批处理 ...
- Spark(九)Spark之Shuffle调优
一.概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网络数据传输等操作.因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行 ...
- day7 反射
反射是python开发中常用的功能,伴随开发的整个过程,因此要熟练掌握反射的用法. 反射常用的函数有四个:hasattr().getattr().setattr()和delattr()四个反射的函数. ...