文档章节

移植qt5.3.1到arm

首席吹牛官
 首席吹牛官
发布于 2015/05/22 12:50
字数 865
阅读 137
收藏 0

最近刚入手一款开发板(比较低端,刚毕业工作还没一个月,穷屌丝一个)。在学校以前都是用的是Friendly Arm的6410,使用的qt版本是使用的最多的4.7.0版本,入手的板子是4.7.4。qt5出来也有好长的时间了,其中提供了很多的特性,所以这次移植的是qt5的最新版本5.3.1。

第一步准备好源码包,这里需要qt的源码包,和tslib包,tslib我使用的是开发板提供的包。

设置交叉编译环境,我使用的是friendly arm的交叉工具。将其加到PATH中。


然后看看是不是已经安装成功。

编译tslib,相关的资料可以找资料,这边就不再赘述了。

我把qt源码包解压到~/software文件夹下,重命名为qte-5.3.1。我们是在arm板上移植,需要知道芯片的架构。我的是arm9,其架构是armv5te。我们进入/home/zhou/software/qte-5.3.1/qtbase/mkspecs/linux-arm-gnueabi-g++目录下,需要修改qmake.conf文件。如下

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib


//添加的内容
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE   +=-O2 -march=armv5te
QMAKE_CXXFLAGS_RELEASE +=-O2 -march=armv5te

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

//添加的内容
QMAKE_INCDIR += /home/zhou/software/tslib1.4-icool2416-v1.0/_install/usr/include  
QMAKE_LIBDIR += /home/zhou/software/tslib1.4-icool2416-v1.0/_install/usr/lib

# modifications to g++.conf
QMAKE_CC                = arm-linux-gcc//这边需要根据你安装来设计,我的是arm-linux-xx
QMAKE_CXX               = arm-linux-g++
QMAKE_LINK              = arm-linux-g++
QMAKE_LINK_SHLIB        = arm-linux-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-ar cqs
QMAKE_OBJCOPY           = arm-linux-objcopy
QMAKE_NM                = arm-linux-nm -P
QMAKE_STRIP             = arm-linux-strip
load(qt_config)

板子比较低端,只能使用framebuffer,如果支持opengl es,可以使用eglfs。qt5将显示都做成了插件形式,这提供了更多的灵活性,详细的内容可以去看qt5的文档。

我编译使用的脚本

#!/bin/sh
echo 'build Qt5 for embedded linux Author Zhou Xiang'
mkdir _install
$PWD/configure -v \
               -prefix $PWD/_install \
               -release \
               -make libs \
               -xplatform linux-arm-gnueabi-g++ \
               -optimized-qmake \
               -pch \
               -qt-sql-sqlite \
               -qt-libjpeg \
               -qt-zlib \
               -no-opengl \
               -no-sse2 \
               -no-openssl \
               -no-nis \
               -no-cups \
               -no-glib \
               -no-xcursor -no-xfixes -no-xrandr -no-xrender \
               -no-separate-debug-info \
               -nomake examples -nomake tools
make && make install


你可以详细的根据自己的需要配置,其实大部分的配置我都没看过。在qte-5.3.1文件夹下运行这个脚本就行。

然后将_install文件夹下的lib,plugin和include拷贝到你想放置的地方,我放置在opt/qte-5.3.1下。tslib生成usr文件夹,我直接拷贝到arm板的根目录下。对/etc/profile进行配置,如下

export TSLIB_ROOT=/usr
export QT_ROOT=/opt/qte-5.3.1
export TSLIB_TSDEVICE=/dev/touchscreen
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/usr/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
export QWS_MOUSE_PROTO=tslib:/dev/touchscreen
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$LD_LIBARAY_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 LD_PRELOAD=/usr/lib/preloadable_libiconv.so:$TSLIB_ROOT/lib/libts.so
export QT_QPA_GENERIC_PLUGINS=tslib

配置ts.conf,如果像我这样,其在/usr/ect目录下

module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

这样我们就配置好了。

下面就是交叉编译我们的项目,其实很简单,就是用qte-5.3.1/_install/bin/qmake一下,然后直接make就ok了。

一开试我运行程序./talkroom -platform linuxfb -plugin tslib总是报

Couldnt load module pthres                                                      
Error configuring                                                               
: No such file or directory
想了各种办法,然后发现,是libts.so没有加载,然后在LD_PRELOAD添加了

export LD_PRELOAD=/usr/lib/preloadable_libiconv.so:$TSLIB_ROOT/lib/libts.so,正常了。

qt5.3.1比较为客户着想,其将窗体边框去了,而且屏幕上没有鼠标的光标了,更加想提供给触摸屏是使用。



第二张图是点击的,其获得了焦点。





本文转载自:http://blog.csdn.net/zhx6044/article/details/38373687

首席吹牛官
粉丝 9
博文 368
码字总数 191938
作品 0
闵行
程序员
私信 提问
qt5.3.1+opencv2.4.9编译环境的搭建

到官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认安装即可实现QT的安装(安装在C盘的根目录下),该文件封装好了Qt libraries、Qt Creator,其中Q...

peizhenfly
2015/04/05
0
0
解决QT5.3.1下触控笔无法工作的问题

刚进新公司,据开发人员说存在QT5.3.1下触控笔无法工作,而在QT5.2.1下能正常工作,研究了一下。 Steps: 1. 首先当然是看下问题是否真的存在。测试情况: 环境 结果 备注 QT5.2.1, win 8.1 3...

l2m2
2014/07/12
0
0
深度操作系统15 ARM版正式发布

今天,我们正式对外宣布深度操作系统 15 ARM版正式发布! 目前,深度操作系统15 ARM版的功能和外观与X86版相差无异,ARM版拥有完整的深度桌面与配套的基础应用,并且得益于移植团队对ARM构架...

melodyzou
2016/01/28
4.5K
11
alsa库的移植

我移植alsa库,主要是想在开发板中进行音频测试,所以移植了alsa-lib、alsa-utils(工具),而移植alsa-utilts又需要编码转换工具libiconv。 我在下面的地址获得所需要的压缩包: alsa-lib:...

陈国成
2015/04/19
0
0
ekho移植到arm环境(Ubuntu)

@黄冠能 你好,想跟你请教个问题: 您好,今天看了一天关于ekho的相关资料,最后还是又有解决不了的问题,还是想求您给个指导意见。 我想把这个ekho移植到tslib下的arm环境下。可是遇到了两个...

china_qhope
2014/09/03
2K
8

没有更多内容

加载失败,请刷新页面

加载更多

怎么选择数据服务器?请记住这五条

我们应当都知道“数据无价”这个词,既然数据那么主要,选择一款安全稳定的数据服务器是很有必要的,那么如何选择一款牢靠的,稳定的数据服务器呢?我们从五个方面下手,协助您体系的了解数据...

linux-tao
27分钟前
1
0
第一讲:编写TCP Socket小程序

根据下面的步骤编写TCP Socket小程序。注意:作者必须是自己的名字。结果如下: 步骤: 1、用VC建立服务器程序 创建一个win32控制台程序 上面的代码如下,编写代码的时候切换到FileView界面,...

一匹狼工作室
29分钟前
2
0
python-protobuf2uml

首先这篇文章是参考的https://github.com/vak/protobuf2uml 本篇文章都是基于python3的 下面首先我们说一下python3的安装 wget https://github.com/protocolbuffers/protobuf/releases/down...

yiduwangkai
30分钟前
1
0
mysql通过source恢复大表小计

最近迁移一个数据库,500多张表大概600多万条数据,通过navicat导出的数据,再通过source命令导入到mysql8.0 之前也做过类似的工作,但是却从来没有这么慢过,一个小时了还没有完成,之前在笔...

休辞醉倒
30分钟前
1
0
Java、Python、C++、PHP、JavaScript这5大编程语言,我究竟该选哪个?

很多朋友在后台给我留言,问:现在这么多编程语言,Python、Java、PHP、C++、JavaScript等,究竟哪种最流行?我想这应该也是你的困扰吧! 其实他们各有优势,但是对于选择困难的程序员而言,...

Java领航员
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部