文档章节

编译 ARM 版本 QT 库

兔之
 兔之
发布于 2016/03/22 16:30
字数 659
阅读 110
收藏 3

往 Mini2440 开发板中移植 QT 应用程序时,需要用 QTCreater 交叉编译代码。而应用程序依赖于一系列的库,这就需要编译 ARM 版本的 QT 库。

编译 ARM 版本 QT 库

1.安装交叉编译环境 arm-linux-gcc 并设置好环境变量。

2.编译安装与触屏校对显示相关的库 tslib1.4.tar.gz,具体步骤参考 Mini2440移植qt-extended4.4.3。需要注意的是编译时需要设置编译链采用 arm-linux-g++。通过下列命令来进行指定。

./configure--host=arm-linux --cache-file=arm-linux.cache \
PLUGIN_DIR=/usr/local/arm/tslib/plugins  \
-prefix=/usr/local/arm/tslib/build -host=arm-linux --cache-file=arm-linux.cache2>&1 | tee conf_log

3.交叉编译安装 qt 库 qt-everywhere-opensource-src-4.6.4.tar.gz,具体步骤参考 Qtcreator配置、交叉编译arm程序。同时也需要设置编译链采用 arm-linux-g++。通过下列命令来进行指定。

./configure -opensource -embedded arm -xplatform qws/linux-arm-g++  
-no-webkit -qt-libtiff -qt-libmng  -qt-mouse-tslib -qt-mouse-pc 
-no-mouse-linuxtp -prefix /opt/Qt4.6.4_forArm 
-I /usr/local/arm/tslib/tslib/include -L /usr/local/arm/tslib/tslib/lib

设置 QTCreater 来交叉编译应用程序

主要是三步:设置 QT 版本(Qt-embeded-arm 库位置)——设置编译器(arm-linux-g++)——设置构建套件

具体步骤参考 Qtcreator配置、交叉编译arm程序

传送文件到 ARM

1.建立 FTP 连接。ftp 202.201..

2.切换到需要传送文件所在目录 lcd /home/huang/Desktop/Quantizer4ARM/build-Quantizer-ARM-Debug

3.传送文件 put Quantizer

4.运行 QT 程序 ./Quantizer -qws

触摸屏失效解决

主要想法是使用 FriendlyARM 的启动脚本。修改 /bin/qt4 脚本为下列 AppLauncher.sh,用它来启动应用程序。

#!/bin/sh
export TSLIB_TSDEVICE=/dev/input/event0 
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin
export QWS_DISPLAY=:1
TS_INFO_FILE=/sys/devices/virtual/input/input0/uevent
if [ -e $TS_INFO_FILE -a "/bin/grep -q TouchScreen < $TS_INFO_FILE" ]; then
export QWS_MOUSE_PROTO="Tslib:/dev/input/event0 MouseMan:/dev/input/mice"
if [ ! -s /etc/pointercal ] ; then
rm /etc/pointercal
/usr/local/bin/ts_calibrate
fi
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi
unset TS_INFO_FILE
export QWS_KEYBOARD=TTY:/dev/tty1
export HOME=/root
cd /usr/local/Trolltech/QtEmbedded-4.6.3-arm/demos/embedded/fluidlauncher
$1 -qws
hotplug

使用 ./AppLauncher.sh ./Quantizer 打开 QT 应用程序。具体步骤参考 Qt在mini2440下的触摸屏失效和库文件找不到问题的解决

QT 版本问题

在开发板上运行程序出现错误

./Quantizer: symbol lookup error: ./Quantizer: undefined symbol: _ZNK6QImage13constScanLineEi

程序读图片使用

const uchar *pSrc = (uchar *)image.constScanLine(i)

这是 Qt 4.8 版本中的,PC 上编译的 QT-embedded-qt 库是 4.8.6 版本的,而 ARM 开发板中的动态链接库是 4.6.3 版本。

将代码改为

uchar *pSrc = (uchar *)image.scanLine(i)

即可正常工作。

参考

mini2440运行Qt程序技巧

Qt程序运行在mini2440开发板上

Qtcreator配置、交叉编译arm程序

© 著作权归作者所有

兔之
粉丝 69
博文 250
码字总数 96477
作品 7
深圳
程序员
私信 提问
qt4.8.2在tq2440开发板上的移植(一)--编译和安装

主机版本:ubuntu11.04 交叉编译器版本:4.3.3 移植的主要工作就是编译在ARM板上运行的qt库,并且把这些库做到根目录中。 需要的文件tslib-1.4.tar.gz qt-everywhere-opensource-src-4.8.2.t...

乐学为上
2012/06/11
0
0
mini2440移植QT4.6.3过程

一般而言,Qt应用程序的内容可分为Qt库的编译,Qt库的移植和基于Qt的应用程序的移植。Qt库的编译所花费的耗线性时间代价是最长的,而Qt库的移植是比较简单的一个工作,只需要让串口发送数据到...

晨曦之光
2012/04/13
659
0
Qt-4.6.3移植与Qt creator开发环境建立

最近把Qt到开发环境建立了起来,以后打算多点时间在学习Qt上面,下面是我的移植与搭建过程,现在贴出来希望能对大家有点帮助。。。。。 作者:顾文彪 博客:http://blog.chinaunix.net/u3/11...

陈国成
2015/04/19
0
0
Tslib的编译和Qt-everywhere-opensource-4.7.2的安装

Tslib的编译1. 解压talib.tar.gz,在当前文件夹下出现tslib-1.4目录,解压命令:root@ubuntu: tar zxvf tslib 2. 进行编译前的配置:命令:root@ubuntu:./configure --host=arm-linux CC=/us...

souldepth
2013/04/12
0
0
Qt5.5.0编译移植到Linux-Arm-A9

这篇是我的第二篇博客,呵呵。上次那篇发牢骚是我第一次写博客。我选择在开源中国社区写博客,是因为这个上面平常有很多关于科技领域和程序员的资讯(新闻),而且有很多技术资料和开源软件唾...

李有常
2015/09/07
4.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

win mysql 安装笔记

官方下载zip的mysql包,解压即可 目录: D:\mysql_file\mysql-5.7.26-winx64 在该目录下新建一个文件夹data (如果操作过程中失败,要把data中的所有文件删掉) 新建一个文件,命名为my.ini,内容...

_大侠__
24分钟前
2
0
第八届“中国软件杯”初赛评审完美收官,课工场赛题备受关注

日前,由工业和信息部、教育部、江苏省人民政府共同创办第八届“中国软件杯”大学生软件设计大赛初赛评审历时两天,于 6 月 23 日圆满结束。由中国科学院软件研究所专家、各高校软件学院相关...

IFTNews
36分钟前
0
0
日期居然用字符串保存?我笑了

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车! 我发现数据库有些日期居然用字符串...

后端进阶
39分钟前
2
0
c 基础教程四:c 输入输出(二)

在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是: puts():只能输出字符串,并且输出结束后会自动换行 putchar():只能输出单个字符 printf():可以输出各种类型的数据 prin...

故城以南丶思念不安
41分钟前
1
0
SSO简单实现与理解

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机...

如同相见恨晚
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部