图形界面程序Qt安装及其在2410s上的移植.docx

上传人:b****8 文档编号:12610169 上传时间:2023-06-06 格式:DOCX 页数:10 大小:19.09KB
下载 相关 举报
图形界面程序Qt安装及其在2410s上的移植.docx_第1页
第1页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第2页
第2页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第3页
第3页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第4页
第4页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第5页
第5页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第6页
第6页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第7页
第7页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第8页
第8页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第9页
第9页 / 共10页
图形界面程序Qt安装及其在2410s上的移植.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

图形界面程序Qt安装及其在2410s上的移植.docx

《图形界面程序Qt安装及其在2410s上的移植.docx》由会员分享,可在线阅读,更多相关《图形界面程序Qt安装及其在2410s上的移植.docx(10页珍藏版)》请在冰点文库上搜索。

图形界面程序Qt安装及其在2410s上的移植.docx

图形界面程序Qt安装及其在2410s上的移植

 学习笔记----图形界面程序Qt安装及其在2410-s上的移植

学习笔记----图形界面程序Qt安装及其在2410-s上的移植

本文主要内容为编译器的安装,安装与建立Qt桌面运行环境,Qt/E的交叉编译,建立本机Qtopia虚拟平台,Qtopia2.1.1在2410-S上的移植.

预备:

编译器安装

编译器:

arm-linux-gcc-3.4.1.tar.bz2

(软件从网上下载,如果不知道从什么地方下载,google就是了。

把软件arm-linux-gcc-3.4.1.tar.bz2拷贝到/usr/local下,在终端执行如下命令安装:

 tar-xjfarm-linux-gcc-3.4.1.tar.bz2

生成的编译工具在目录/usr/local/arm/3.4.1/bin下,修改/etc/profile,增加如下一行。

这可以让我们直接运行arm-linux-gcc,而不必将其绝对路径都写出来,不过这得重新启动后才生效:

pathmunge/usr/local/arm/3.4.1/bin

硬件:

UP-NETARM2410S

一.安装与建立Qt桌面运行环境

软件:

PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境

tmake-1.13.tar.gzqt-embedded-2.3.10-free.tar.gz

qt-x11-2.3.2.tar.gz

软件从网上下载,如果不知道从什么地方下载,google就是了。

把本次实验用到的三个文件拷贝到/root/2410sQt目录下,以下的步骤是假设你在/root/2410sQt下操作的。

Qt/Embedded平台的搭建需要以下几步:

第一步,解压安装包并设置环境变量

tar–xzvftmake-1.13.tar.gz

tar–xzvfqt-x11-2.3.2.tar.gz

tar–xzvf

qt-embedded-2.3.10-free.tar.gz

mv qt-2.3.10qt-2.3.10-host

export

TMAKEDIR=$PWD/tmake-1.13

exportQT2DIR=$PWD/qt-2.3.2

exportQTEDIR=$PWD/qt-2.3.10-host

环境变量的设置是非常重要的,它关系到能否正确的安装及编译这些安装包.

注意:

在以下安装中,make命令执行前先执行一下makeclean命令.

第二步,编译Qt/Embedded。

1.BuildQt2.3.2

cd$QT2DIR

exportTMAKEPATH=$TMAKEDIR/lib/linux-g++

exportQTDIR=$QT2DIR

exportPATH=$QTDIR/bin:

$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:

$LD_LIBRARY_PATH

makeclean

./configure-no-xft

make

mkdir$QTEDIR/bin

cpbin/uic$QTEDIR/bin/

2.BuildQvfb

exportTMAKEPATH=$TMAKEDIR/lib/linux-g++

exportQTDIR=$QT2DIR

exportPATH=$QTDIR/bin:

$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:

$LD_LIBRARY_PATH

cd$QTEDIR/tools/qvfb

make clean

tmake-oMakefileqvfb.pro

make

mvqvfb$QTEDIR/bin/

这一步buildqvfb并建立了从Qt/Embedded2.3.10到Qt2.3.2的静态库的链接。

其中qvfb工具用来生成Virtualframebuffer,这是一个非常有用的工具,它可以模拟在开发板上的显示情况,如果在Virtualframebuffer中运行没有问题的话,可以直接通过交叉编译在开发板上运行。

3.BuildQt/Embedded

cd$QTEDIR

exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++

exportQTDIR=$QTEDIR

exportPATH=$QTDIR/bin:

$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:

$LD_LIBRARY_PATH

makeclean

./configure-no-xft-qvfb-depths4,8,16,32

make

第三步查看运行结果

 如果上面各步都能够成功的编译通过,下面就可以通过运行

Qt/Embedded自带的demo来查看运行结果。

●在Virtualframebuffer上运行:

 exportQTDIR=$QTEDIR

 exportPATH=$QTEDIR/bin:

$PATH

 exportLD_LIBRARY_PATH=$QTEDIR/lib:

$QT2DIR/lib:

$LD_LIBRARY_PATH

 cd$QTEDIR/examples/launcher

 qvfb-width640-height480&

 sleep10

 ./launcher-qws

二 Qt/E的交叉编译

  

 要将我们写好的程序发布到开发板上,我们需要对Qt/Embedded重新编译,与前面在宿主机上编译类似,步骤如下:

1.BuildQt/Embedded

tar–xzvfqt-embedded-2.3.10-free.tar.gz

mv qt-2.3.10

qt-2.3.10-target

exportTMAKEDIR=$PWD/tmake-1.13

exportQT2DIR=$PWD/qt-2.3.2

exportQTEDIR=$PWD/qt-2.3.10-target

cd$QTEDIR

exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++

exportQTDIR=$QTEDIR

exportPATH=$QTDIR/bin:

$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:

$LD_LIBRARY_PATH

make clean

./configure-xplatformlinux-arm-g++-no-xft-no-qvfb-depths4,8,16,32

make

这步完成后,我们会在/$QTEDIR/lib/目录下面看到libqte.solibqte.so.2libqte.so.2.3libqte.so.2.3.10这四个文件,我们可以使用file命令来查看这个库文件是否是我们需要的在开发板上跑的库。

filelibqte.so.2.3.10

libqte.so.2.3.10:

ELF32-bitLSBsharedobject,ARM,version1(ARM),stripped

有了这个库以后我们就可以把它拷贝到我们的开发板中相应的库目录下面,这里我们选择了开发板上的/usr/lib目录,将/$QTEDIR/lib/下的libqte.so*复制到/usr/lib目录下。

首先要建立宿主机和开发板的通讯,假设本机的ip地址为192.168.0.56并且/root/share为共享文件夹。

cp–arf/$QTEDIR/lib/libqte.so* /root/share

启动minicom

mount–tnfs–onolock192.168.0.56:

/root/share/mnt/nfs将文件复制到开发板上

cp–arf/mnt/nfs/libqte.so*/usr/lib

2.修改tmake配置文件

vi$TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf

将其中“TMAKE_LINK=arm-linux-gcc”

“TMAKE_LINK_SHLIB=arm-linux-gcc”

修改为:

“TMAKE_LINK=arm-linux-g++”

“TMAKE_LINK_SHLIB=arm-linux-g++”

3.生成可执行文件

这里我们采用了Qt/Embedded自带的一个demo,它在/$QTEDIR/examples/progressbar目录下,这个目录包括下面几个文件:

main.cpp、Makefile.in、progressbar.h、

Makefile、progressbar.cpp、progressbar.pro,如果已经有了progressbar的执行文件,可以使用makeclean删除。

 progen–tapp.t–oprogressbar.pro

 echo$TMAKEPATH

 查看返回的结果的结尾字符是否是“……/qws/linux-arm-g++”,如果不是的话需要在命令行中重新设置TMAKEPATH

 exportTMAKEPATH=/tmake的安装路径(如$TMAKEDIR)/lib/qws/linux-arm-g++

此外还要使QTDIR指向Qt/Embedded的安装路径,如:

exportQTDIR=$QTEDIR或者直接指定路径

exportQTDIR=……/qt-2.3.10

完成了上面的环境变量的设置,并用echo命令检查无误以后,就可以使用tmake工具来生成我们需要的makefile文件,在命令行中输入如下命令:

tmake–omakefileprogressbar.pro

make

如果没出现错误的话就可以在当前目录下找到progressbar这个可执行文件,它就是在我们开发板上的相应目录中运行“./progressbar-qws”就可以运行程序了。

  

注:

1).如果执行命令

[/mnt/nfs]./progressbar-qws

./progressbar:

errorwhileloadingsharedlibraries:

libstdc++.so.6:

cannotopensharedobjectfile:

Nosuchfileordirey

  我的解决办法是从编译器目录下查找,并拷贝到开发板/usr/lib/中

  

即拷贝/usr/local/arm/3.4.1/arm-linux/lib/libstdc++.so* 到开发板/usr/lib/中

  2).[/mnt/nfs]./progressbar–qws

./progressbar:

errorwhileloadingsharedlibraries:

libgcc_s.so.1:

cannotopensharedobjectfile:

Nosuchfy

   方法同上

  

三.建立本机Qtopia虚拟平台

软件:

RedhatLinux9.0forPC+minicom+EmbededLinuxfor2410

tmake-1.13.tar.gzqtopia-free-source-2.1.1.tar.bz2qt-embedded-2.3.10-free.tar.gzqt-x11-2.3.2.tar.gz

将本次实验所需的四个文件拷贝到/root/qtopia目录下,我们以下的实验都是在这个目录下进行的。

宿主机上建立虚拟的Qtopia环境需要以下几个步骤:

1.解压缩安装文件:

tarjxvfqtopia-free-source-2.1.1.tar.bz2

mvqtopia-2.1.1 qtopia-2.1.1-target

tarxzftmake-1.13.tar.gz

tarxzfqt-x11-2.3.2.tar.gz

tarxzfqt-embedded-2.3.10-free.tar.gz

mvqt-2.3.10 qt-2.3.10-target

exportQPEDIR=$PWD/qtopia-2.1.1-target

exportTMAKEDIR=$PWD/tmake-1.13

exportQT2DIR=$PWD/qt-2.3.2

exportQTEDIR=$PWD/qt-2.3.10-target

2.BuildQt/X11:

cd$QT2DIR

exportTMAKEPATH=$TMAKEDIR/lib/linux-g++

exportQTDIR=$QT2DIR

exportPATH=$QTDIR/bin:

$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:

$LD_LIBRARY_PATH

./configure-no-xft

make

mkdir$QTEDIR/bin

cpbin/uic$QTEDIR/bin/

3.BuildQvfb:

exportTMAKEPATH=$TMAKEDIR/lib/linux-g++

exportQTDIR=$QT2DIR

exportPATH=$QTDIR/bin:

$PATH:

$TMAKEDIR/bin

exportLD_LIBRARY_PATH=$QTDIR/lib:

$LD_LIBRARY_PATH

cd$QTEDIR/tools/qvfb

tmake-oMakefileqvfb.pro

make

mvqvfb$QTEDIR/bin/

4.Buildlibqte:

cd$QTEDIR

exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++

exportQTDIR=$QTEDIR

exportPATH=$QTDIR/bin:

$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:

$LD_LIBRARY_PATH

cp-f$QPEDIR/src/qt/qconfig-qpe.hsrc/tools/

./configure-system-jpeg-no-xft-qconfigqpe-qvfb-depths4,8,16,32

makesub-src

5.BuildQtopia:

cd$QPEDIR

exportQTDIR=$QTEDIR

exportPATH=$QPEDIR/bin:

$PATH

export

LD_LIBRARY_PATH=$QPEDIR/lib:

$LD_LIBRARY_PATH

./configure

make

 和前面编译Qt/Embedded的基本步骤一样,还可以参考“./configure--help”,来进行选择。

为了保证qvfb能够正确显示qtopia的结果,我们必须保证环境变量设置正确,我们可以通过“env”命令来检查下面的环境变量,也可以用下面的方法来检查。

echo$QPEDIR

/root/qtopia/qtopia-free-2.1.1/

echo$QTDIR

/root/qtopia/qt-2.3.10

echo$LD_LIBRARY_PATH

/root/qtopia/qtopia-free-2.1.1/lib:

/root/qtopia/qt-2.3.10/lib

echo$PATH

/root/qtopia/qt-2.3.10/bin:

/usr/kerberos/sbin:

/usr/kerberos/bin:

/usr/local/sbin:

/usr/local/bin:

/sbin:

/bin:

/usr/sbin:

/usr/bin:

/usr/X11R6/bin:

/root/bin

出现上面的结果就可以正常的显示Virtualframebuffer,我们可以通过下面的命令在Virtualframebuffer中实现Qtopia。

cd$QPEDIR/bin

qvfb&

sleep10

./qpe.sh

四 Qtopia2.1.1在2410-S上的移植

软件:

RedhatLinux9.0forPC+minicom+EmbededLinuxfor2410

e2fsprogs-libs-1.37.tar.gz,libjpeg-iwmmxt.tar.bz2,qt-embedded-2.3.10-free.tar.gz

qtopia-free-source-2.1.1.tar.bz2,qt-x11-2.3.2.tar.gz,qt-x11-free-3.3.4.tar.bz2,

tmake-1.13.tar.gz,tslib.tar.gz,buildqtopia.sh

1.实验可以分为以下几个步骤进行:

(1)在装有linux的pc机上安装交叉编译环境。

安装光盘时所安装的编译器版本较低,不能正常编译QT程序,所以编译前需要安装Qt/tools/arm-linux-gcc-3.4.1.tar.bz2,并在/root/.bash_profile中修改编译器搜索路径。

(2)编译库文件:

(3)编译qt-x11-2.3.2:

(4)编译安装qt-embedded-2.3.2

(5)编译安装QTOPIA

(6)将需要拷贝到开发板上的文件整理到一个单独的文件夹里面

在本次实验中,buildqtopia.sh文件已为大家做好了以上几步,我们可以直接运行该文件进行编译。

大家可以分析buildqtopia.sh内容,掌握编译的步骤。

2.编译步骤:

cdsrc

./buildqtopia.sh

当编译完成后,在src/qtopia-free-2.1.1/image/opt/Qtopia下是编译完成的Qtopia桌面环境。

说明:

在编译完成后,src下的各个目录对应如下软件包:

e2fsprogs-libs-1.37ext2文件系统工具包,Qtopia用到了其中的libuuid

e2fs-installext2工具包编译结果

jpeg-6bjpeg解码库

jpeg-installjpeg编译结果

tslib触摸屏工具包

tslib-install触摸屏工具包编译结果

tmake-1.13tmake工具,编译Qtopia时需要使用

qt-2.3.2Qt/X11-2.3.2及编译结果,编译Qtopia时需要使用其中的工具

qt-x11-free-3.3.4Qt/X11-3.3.4及编译结果,编译Qtopia时需要使用其中的工具

qt-2.3.10Qt/Embedded2.3.10及编译结果

qtopia-free-2.1.1Qtopia2.1.1及编译结果

3.安装步骤:

1)Qtopia

cdsrc/qtopia-free-2.1.1/image/opt/

tarcvjf/tmp/qtopia-install.tar.bz2Qtopia

将/tmp/qtopia-install.tar.bz2下载到目标机,并解压缩到某个目录,假设为/mnt/yaffs。

2)相关文件

将src/qtopia.sh下载到目标机的/usr/bin目录下.将src/e2fs-install/lib/libuuid.so*下载到目标机的/usr/lib目录下.将src/jpeg-install/lib/libjpeg.so*下载到目标机的/usr/lib目录下

3)目标机上的处理在目标机上执行:

cd/usr

ln-s/mnt/yaffs/Qtopiaqpe

chmod+x/usr/bin/qtopia.sh

注:

光盘中没有提供qtopia.sh文件,下面是qtopia.sh文件

//qtopia.sh

#!

/bin/sh

exportQTDIR=/usr/qpe

exportQPEDIR=/usr/qpe

exportKDEDIR=/usr/qpe

exportTSLIB_TSDEVICE=/dev/input/event0

exportTSLIB_CONFFILE=/tmp/ts.conf

exportTSLIB_CONSOLEDEVICE=none

exportTSLIB_CALIBFILE=/tmp/ts-calib.conf

export

TSLIB_PLUGINDIR=/usr/qpe/lib

exportQT_TSLIBDIR=/usr/qpe/lib/

export

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:

/usr/qpe/lib/

exportQWS_SIZE=640x480

export

QWS_MOUSE_PROTO="TPanel:

/dev/input/event0USB"

exportLANG=zh_CN

insmod

/mnt/yaffs/touchscreen/ts-uptech.o

cp/usr/qpe/etc/ts.conf/tmp

cd/usr/qpe/bin/

if["$1"="c"];then

./ts_calibrate

fi

if[-f"$TSLIB_CALIBFILE"];then

./qpe&>/dev/null

else

./ts_calibrate

./qpe&>/dev/null

fi

clear

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2