基于linuxARM的QT环境搭建Word文档下载推荐.docx
- 文档编号:18842185
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:12
- 大小:23.42KB
基于linuxARM的QT环境搭建Word文档下载推荐.docx
《基于linuxARM的QT环境搭建Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于linuxARM的QT环境搭建Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
开发QT的公司已被诺基亚公司收购)官网地址:
2.触摸屏支持tslib
3.Linux系统上的一些编译工具或者库
说明:
(1)交叉编译工具是在QT库安装时要用到它来编译,然后QT应用程序调试时需要要到它编译成ARM板上能运行的代码。
(2)qt-embedded-linux-opensource-src包含了支持最终到ARM开发板上运行的应用程序的库文件,而qt-x11-opensource-src则是为了能在PC机上进行针对ARM板环境的模拟程序调试,比如说没有开发板的时候,但又想验证能否在ARM板上运行,此时需要用到。
(3)tslib则是用来校准触摸屏用的,触摸数据最先由开发板上驱动程序得到,(驱动已经加载到内核中),然后传递给tslib,tslib将原始数据进行一定去抖,校准等工作,然后把数据传给顶层应用程序,我是这样理解的,不知道正确否。
第三部分:
QT移植详情
注:
此移植过程在Ubuntu9.04系统下完成
带#开头的表示终端运行的命令
带//开头的表示注释
红色字体表示应该特别注意的地方
我的移植环境
1.开发板:
友坚恒天公司的s3c6410
2.PC机系统windosxp
3.PC机上装Vware虚拟机系统:
Ubuntu9.04
4.交叉编译工具:
arm920t-eabi-4.1.2.tar.gz
5.Qt版本:
qt-embedded-linux-opensource-src-4.5.3.tar.gz
6.触摸屏校准:
tslib1.4.tar.gz
第一步:
安装交叉编译工具(解压就行,然后设置一个环境变量)
先将arm920t-eabi-4.1.2.tar.gz拷贝到/home/resource下,然后解压到根目录
#cd/home
#mkdirresource
#cd/home/resource
#tarzxvfarm920t-eabi-4.1.2.tar.gz–C/
zxvf是解压参数,-C是改变解压路径,/表示到根目录
完成后在它的安装路径是:
/opt/toolchains/arm920teabi/,可以查看到。
为了后续QT安装能够调用arm-linux-gcc等命令,需要设置环境变量
#gedit/etc/bash.bashrc(手动以记事本打开一样的,后续同理)
//添加linux系统环境变量
在该文件的末尾加上
exportPATH=$PATH:
/opt/toolchains/arm920teabi/bin
保存关闭
#source/etc/bash.bashrc
#arm-linux-gcc–v//查看编译器版本
1.至于安装路径选择哪里,可以自己定,但是之后的环境变量设置就一定要跟你的安装路径对应好。
就比如说我的是/opt/toolchains/arm920teabi/,在该目录下有一个bin目录,里面你可以查看到一些arm-linux-gcc等命令,那如果你更换了路径,则一样要找到那个bin目录,然后设置环境变量。
若能通过arm-linux-gcc–v命令查看到该交叉编译器的版本,则表示安装完成,并且环境变量设置成功。
2.不同的交叉编译工具默认的安装路径是不同的,比如说arm-linux-gcc-4.3.2的默认安装是在/usr/local/arm/下,这个自己知道就行,关键是环境变量要设好。
第二步:
安装tslib(解压并安装,然后设置配置文件)
此步需要一些工具,ubuntu下需要安装
automake、autoconf、libtool,可以执行下面语句安装
#apt-getinstallautomakeautoconflibtool
tslib是支持触摸品用的,触摸屏最终能够使用的条件是:
a.硬件支持触摸屏
b.内核已经加载触摸屏驱动,可以在nfs挂载的方式下用命令cat/dev/input/event0来测试是是否加载了驱动,如果已经加载,这个时候你点击触摸屏终端是有反应的(出现一些乱码)。
前面的命令中event0是对应触摸屏的硬件设备号,你可能不是event0,但一般用event0或者event1
c.有支持触摸屏校准的库或者程序,用的多的是tslib,另外linuxtp好像也可以。
。
d.应用程序支持触摸屏
将tslib1.4.tar.gz拷贝到/home/resource下,然后解压到/home目录下
#cd/home/
#tarzxvf./resource/tslib1.4.tar.gz//解压到/home
(不行的话使用#tarzxvf./resource/tslib1.4.tar.gz-C./命令,后续操作同理)
#cdtslib
#./autogen.sh
#./configure--prefix=/usr/local/tslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes
//配置tslib安装(路径设置在/usr/local/tslib/)
#make//生成Makefile
#makeinstall//安装
#cd/home
#rm–rtslib//安装完成,可以选择删除解压文件
安装过程中若没有出现错误,则表示安装成功,此时应该可以在/usr/local/tslib/下看到安装好的文件,若中途出现错误,则应该检查交叉编译器是否安装好,环境变量是否设置好,然后tslib的配置命令是否有错。
(注:
#./configure--prefix语句中的--prefix可以换成–prefix试一试)
第三步:
安装qt-embedded-linux-opensource-src-4.5.3.tar.gz
先安装Linux下的G++工具
#apt-getinatallg++//已安装则不需要
把qt-embedded-linux-opensource-src-4.5.3.tar.gz拷贝到/home/resource下
#tarzxvf./resource/qt-embedded-linux-opensource-src-4.5.3.tar.gz
//将其解压到/home下
#cdqt-embedded-linux-opensource-src-4.5.3
#./configure-prefix/usr/local/Trolltech/QtEmbedded-4.5.3\//指定安装目录
-release-shared\//配置QT库裁剪参数
-fast\
-pch\
-no-qt3support\
-qt-sql-sqlite\
-no-libtiff-no-libmng\
-qt-libjpeg\
-qt-zlib\
-qt-libpng\
-qt-freetype\
-no-openssl\
-nomakeexamples-nomakedemos-nomaketools\
-optimized-qmake\
-no-phonon\
-no-nis\
-no-opengl\
-no-cups\
-no-xcursor-no-xfixes-no-xrandr-no-xrender-no-xkb-no-sm\
-no-xinerama-no-xshape\
-no-separate-debug-info\
-xplatformqws/linux-arm-g++\
-embeddedarm\
-depths16\
-no-qvfb\
-qt-gfx-linuxfb\
-no-gfx-qvfb-no-kbd-qvfb-no-mouse-qvfb\
-qt-kbd-usb\
-confirm-license\
-no-armfpa
-qt-mouse-tslib\
-L/usr/local/tslib/lib\//不定的,对应你的tslib安装库位置
-I/usr/local/tslib/include//不定的,对应tslibin头文件位置
上面的代码比较长,复制时小心,该代码用于对QT库的裁剪配置,因为QT库过大,如果完全编译的话,可能最终arm板负载不了,所以需要裁剪。
而裁剪的参数没有规定的,你甚至可以不裁剪,但一般情况会把鼠标库,例子,样例代码等去掉。
你可以输入./configure-help来查看各选项的含义,但都是英文的。
以上“\”符号表示该行命令没有结束,接着下一行。
如果把上述代码复制到终端命令行没有出错,则会出现一个提示选择信息,那是QT安装的版本选择信息,一般选择“O”,意思是开源(opensource),然后继续。
………………………………………..……..…等待一点时间.…..……..……..……..……..………..………..………..………..…
#make
………………………………………..……..…等待大概2个小时…..……..……..……..………..………..……..……..……..
#makeinstall
………………………………………..……..…同样等待大概两个小时,安装完成………………………………………..…
若安装过程中出现问题,可能前两步安装没有到位,返回去检查。
若无错误,安装成功,会在目录/usr/local/Trolltech/QtEmbedded-4.5.3下看到对应安装好的文件。
#cd/usr/local/Trolltech/QtEmbedded-4.5.3
#ls
#cd/usr/local/Trolltech/QtEmbedded-4.5.3/bin
#mvqmakeqmake-arm//修改qmake为qmake-arm
#gedit/etc/bash.bashrc//添加linux系统环境变量
在文件末尾加上环境变量
/usr/local/Trolltech/QtEmbedded-4.5.3/bin
#qmake-ar(按Tab建,会出现qmake-arm表示环境变量设置成功)
此步也比较重要,一个linux系统多安装几个QT程序的话,会出现相同的qmake命令,所以为了区分qmake,改名成qmake-arm,而后面添加环境变量是因为以后编译QT应用程序要用到。
……………………………………………………………………………………………………………………………………………………...
自此,要安装的程序已经安装完毕,接下来就是一些修改设置操作。
第四步:
启动NFS服务
一般程序做调试都会使用nfs挂载的方法,这样做方便,节省资源。
首先确保你的Ubuntu安装过nfs服务,没有的话使用命令安装
#apt-getinstallnfs-kernel-server//安装nfs服务,
#gedit/etc/exports//修改nfs配置
在该文件末尾加入
/home/nfs192.168.1.128(rw,sync,no_root_squash)//192.168.1.128为开发板的IP
保存关闭
#/etc/init.d/portmaprestart//重启nfs服务
#/etc/init.d/nfs-kernel-serverrestart//重启nfs服务
上述ip地址的对应很重要,否则nfs不能挂载,ip地址的设置不一定要死定,但是要保证开发板和Ubuntu在同一个网段。
如果Ubuntu使用虚拟机安装的话,还要顾及虚拟机和pc机windows系统的链接,最好保证上述三者在同一网段,另外虚拟机和pc机的连接到底是使用桥接(bridged)还是NAT(networkaddresstranslate)这个可以自己试一试,哪种行就行,一般两种都可以的,这个设置是在虚拟机里完成的。
至于开发板的ip怎么设,卖家也会给你一些教程的。
我是做法是:
开发板ip地址:
192.168.1.128//看下条注释
主机(虚拟机)ip地址:
192.168.1.110//在第七步操作中设置
设置开发板的ip地址:
串口终端#setenvbootargs“root=/dev/nfsnfsroot=192.168.1.110:
/home/nfs(+空格)
ip=192.168.1.128:
192.168.1.110:
192.168.1.1:
255.255.255.0:
:
eth0:
offconsole=ttySAC0,115200”
串口终端#saveenv//保存配置
该设置语句是在开发板启动时进入开发板的uboot(类似pc机的bios)时输入完成的,这要用到一些串口调试工具,我直接用的windows的超级终端,开发板(跟pc机已经串口、网线连接好)开机时按空格键进入uboot,然后在串口终端输入上述语句,最后保存参数配置。
可以查看第七步操作。
第五步:
修改文件系统
要想开发板能在nfs挂载成功并运行程序,必须要一个针对ARM的硬件平台的文件系统,这种文件系统一般开发板供应商都会给你的。
我使用的是urbetter-rootfs-qt-2.2.0.tgz。
1.
将urbetter-rootfs-qt-2.2.0.tgz拷贝到/home/resource下
在home目录下建一个nfs挂载用的共享文件夹
#mkdirnfs//创建一个nfs共享目录
#cd/home/resource
#tarzxvfurbetter-rootfs-qt-2.2.0.tgz-C/home/nfs//解压文件系统到/home/nfs
#cd/home/nfs
删除/home/nfs/opt/Qtopia下所有内容(可以手动删)
//删除文件系统自带的系统软件等
删除/home/nfs/usr/local下的所有内容删除(可以手动删)
//删除文件系统自带的用户程序等
打开/home/nfs/etc/init.d/rcS文件//屏蔽系统默认启动代码
删除如下内容:
/bin/qtopia&
//启动代码
echo"
"
>
/dev/tty1
StartingQtopia,pleasewaiting..."
/dev/tty1//提示信息
2.
到qt的安装目录下将库文件/usr/local/Trolltech/QtEmbedded-4.5.3/lib全部拷贝到/home/nfs/opt/Qtopia
#cp–r/usr/local/Trolltech/QtEmbedded-4.5.3/lib/home/nfs/opt/Qtopia/(-r是递归拷贝)
到tslib的安装目录将整个文件夹拷贝到/home/nfs/usr/local/
#cp–r/usr/local/tslib//home/nfs/usr/local/(-r是递归拷贝)
#cd/usr/local/tslib/
#ls
应该看到以下目录
/bin,//包含一些触摸屏的可执行文件,如校准文件,测试文件
/etc,//触摸屏初始化配置文件,下面是要修改的
/include,//包含头文件等
/lib//包含触摸屏支持库
#cd./bin
应该看到一些可执行文件,其中ts_calibrate是校准程序,ts_test是测试程序
#cd..
#cd./etc
应该看到一个触摸屏的配置文件/ts.conf
打开该文件,进行编辑
在文件末尾添加以下语句
module_rawinput//启动触摸屏的数据输入方式,这样tslib才能从底层获得数据
modulepthres
modulevariancedelta=30
moduledejitterdelta=100
modulelinear
保存并关闭该文件。
3.设置nfs文件系统的环境变量
#gedit/home/nfs/etc/profile(手动以记事本打开一样的)
在该文件末尾加上如下内容:
exportQTDIR=/opt/Qtopia//Qt根目录
exportPATH=$QTDIR/bin:
$PATH//Qt可执行文件目录
exportQT_QWS_FONTDIR=/opt/Qtopia/lib/fonts//Qt字体库
exportTSLIB_ROOT=/usr/local/tslib//tslib路径
exportTSLIB_TSDEVICE=/dev/input/event1//指定触摸屏对应驱动设备
exportTSLIB_FBDEVICE=/dev/fb0
exportTSLIB_CONSOLEDEVICE=none
exportTSLIB_CALIBFILE=/etc/pointercal//指定校准文件生成目录
exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf//指定tslib配置文件
exportTSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts//指定tslib数据读取库
exportLD_LIBRARY_PATH=$TSLIB_ROOT/lib:
$QTDIR/lib:
$LD_LIBRARY_PATH
//指定QT库和tslib校准库
保存并关闭
第六步:
找到QT测试程序
为了验证qt移植成功否,需要做qt程序测试。
测试程序有很多,比如在之前解压的/home/qt-embedded-linux-opensource-src-4.5.3/文件下就有许多样例,比如./demos,./examples等你也可以拿自己开发的QT应用程序来测试,我就拿./demos/embedded做测试。
但是注意程序测试前应该先编译,编译使用qmake-arm(qmake的改名)命令,就是上面qt移植时设置的环境变量。
编译方法:
首先确保程序正确并且完整,把与程序有关的所有文件(头文件等)放在同一个文件夹下。
在终端上使用cd命令进入到该文件夹,然后
#qmake–project
#qmake
make完之后生成能够在arm板上运行的可执行文件(在pc机上不能运行),然后将该可执行文件拷贝到nfs目录(/home/nfs)下的任何地方,最好是连同整个文件夹一起拷贝过来。
我的测试程序./demos/embedded,该程序下有三个小的测试程序,可以一起编译,也可以单个编译。
下面是我的做法:
将/home/qt-embedded-linux-opensource-src-4.5.3.tar.gz/demos/embedded拷贝到/home/nfs目录
#cd/home/nfs/embedded
#ls//3个小测试程序
#qmake-arm
#make//3个测试程序编译完成
此时测试程序已经准备好了,等待测试。
第七部:
nfs挂载测试
将开发板与pc机连接好,包括网线连接,串口连接
打开终端调试工具(xshell比较好用),我就直接用的windows下的超级终端,当然不管用哪个终端工具,波特率要设对,应该是115200。
2.设置虚拟机ubuntu的ip地址
#ifconfig//查看ip
#ifconfigeth5192.168.1.110up//配置ip地址,看下注释
#ifconfig//确认ip是192.168.1.110
上述配置ip地址时,eth后面的数字是不定的,在查看ip时你可以看到自己的eth号数,我的是eth5,自己的是eth几就改成eth几就行了。
3.打开arm开发板电源,此时你应该看到终端工具上有反应(出现一系列数据,不太懂,不用管),等出现提示信息:
PleasepressEntertoactivethisconsole.时按回车键(别慌,你没按键它停在那的)
4.在串口终端上运行命令
串口终端#ls//显示nfs文件系统下的所有文件
串口终端#cd/embedded
串口终端#ls
串口终端#cd./styledemo
串口终端#./styledemo–qws//运行测试文件-qws是参数
等待片刻,能看到arm板显示屏上出现一些qt程序画面,你可以插上鼠标进行测试,但是触摸屏应该是用不了的,此问题一直困扰我很久,最终已被我解决,方法不会太难。
但此文档不涉及,需要的话,可以在我的XX文库上下载《GPS触摸屏校准》。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 linuxARM QT 环境 搭建
![提示](https://static.bdocx.com/images/bang_tan.gif)