学习笔记----图形界面程序Qt安装及其在2410-s上的移植
上一篇 / 下一篇 2007-08-16 20:01:33 / 个人分类:嵌入式开发
-pI'a5g;e|H2W lw'o0本文主要内容为编译器的安装,安装与建立Qt 桌面运行环境,Qt/E 的交叉编译,建立本机Qtopia 虚拟平台,Qtopia2.1.1 在2410-S 上的移植.
预备:编译器安装
编译器: arm-linux-gcc-3.4.1.tar.bz2木铎校园 BBS 社区^!s1gv)G!Q
(软件从网上下载,如果不知道从什么地方下载,google就是了。)
(软件从网上下载,如果不知道从什么地方下载,google就是了。)
木铎校园 BBS 社区 K*|r.L+d2C%^M
把软件arm-linux-gcc-3.4.1.tar.bz2拷贝到/usr/local下,在终端执行如下命令安装:
1L~3DV0~0 tar -xjf arm-linux-gcc-3.4.1.tar.bz2
把软件arm-linux-gcc-3.4.1.tar.bz2拷贝到/usr/local下,在终端执行如下命令安装:
1L~3DV0~0 tar -xjf arm-linux-gcc-3.4.1.tar.bz2
8kB{ xk2F0生成的编译工具在目录/usr/local/arm/3.4.1/bin下,修改/etc/profile,增加如下一行。这可以让我们直接运行arm-linux-gcc,而不必将其绝对路径都写出来,不过这得重新启动后才生效:
(tY Xjz-Z0pathmunge /usr/local/arm/3.4.1/bin
硬件:UP-NETARM2410S木铎校园 BBS 社区OV6d8g NB`+T
一. 安装与建立Qt 桌面运行环境
E#D8{ Z(n%@H&n2sn2?0软件:PC 机操作系统REDHAT LINUX 9.0 +MINICOM + ARM-LINUX 开发环境
Y-x,F |6kBH0tmake-1.13.tar.gz qt-embedded-2.3.10-free.tar.gz木铎校园 BBS 社区q&x5\0i G j_'\
qt-x11-2.3.2 .tar.gz
8iG,~][&[v/| YJ0软件从网上下载,如果不知道从什么地方下载,google就是了。
把本次实验用到的三个文件拷贝到/root/2410sQt目录下,以下的步骤是假设你在/root/2410sQt 下操作的。
Qt/Embedded 平台的搭建需要以下几步:
第一步,解压安装包并设置环境变量
tar –xzvf tmake-1.13.tar.gz
U2fh$j~$Zs+D0tar –xzvf qt-x11-2.3.2.tar.gz木铎校园 BBS 社区Nr7c2C2D
tar –xzvf
0ap;L9{H0qt-embedded-2.3.10-free.tar.gz
kMv!Wz"`0mv qt-2.3.10 qt-2.3.10-host木铎校园 BBS 社区i6c'Ro&FUi
export木铎校园 BBS 社区M!F~e,O(H
TMAKEDIR=$PWD/tmake-1.13木铎校园 BBS 社区Z"X0z4Ep[B;w#S
export QT2DIR=$PWD/qt-2.3.2
+Jn2]3|z L{6A M0export QTEDIR=$PWD/qt-2.3.10-host木铎校园 BBS 社区AG:A+Gf1Z
环境变量的设置是非常重要的,它关系到能否正确的安装及编译这些安装包.
U2fh$j~$Zs+D0tar –xzvf qt-x11-2.3.2.tar.gz木铎校园 BBS 社区Nr7c2C2D
tar –xzvf
0ap;L9{H0qt-embedded-2.3.10-free.tar.gz
kMv!Wz"`0mv qt-2.3.10 qt-2.3.10-host木铎校园 BBS 社区i6c'Ro&FUi
export木铎校园 BBS 社区M!F~e,O(H
TMAKEDIR=$PWD/tmake-1.13木铎校园 BBS 社区Z"X0z4Ep[B;w#S
export QT2DIR=$PWD/qt-2.3.2
+Jn2]3|z L{6A M0export QTEDIR=$PWD/qt-2.3.10-host木铎校园 BBS 社区AG:A+Gf1Z
环境变量的设置是非常重要的,它关系到能否正确的安装及编译这些安装包.
注意: 在以下安装中,make命令执行前先执行一下make clean命令.木铎校园 BBS 社区yl!IA#u
t
第二步,编译Qt/Embedded。
第二步,编译Qt/Embedded。
1. Build Qt2.3.2
JH6ymVY0cd $QT2DIR木铎校园 BBS 社区n3_iT&l^ J b:GY
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
1e @p(g0w0K)Nk0export QTDIR=$QT2DIR木铎校园 BBS 社区$iZ}&f2_G7d
export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区bh5RA~,S WH[H
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区 U]0bP"A
make clean
4U3}Kf g'J^0./configure -no-xft木铎校园 BBS 社区8z6GJ3h ? H
make木铎校园 BBS 社区Y4B0_0E?%?sR'Z
mkdir $QTEDIR/bin木铎校园 BBS 社区v/Bx[Ln
cp bin/uic $QTEDIR/bin/
JH6ymVY0cd $QT2DIR木铎校园 BBS 社区n3_iT&l^ J b:GY
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
1e @p(g0w0K)Nk0export QTDIR=$QT2DIR木铎校园 BBS 社区$iZ}&f2_G7d
export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区bh5RA~,S WH[H
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区 U]0bP"A
make clean
4U3}Kf g'J^0./configure -no-xft木铎校园 BBS 社区8z6GJ3h ? H
make木铎校园 BBS 社区Y4B0_0E?%?sR'Z
mkdir $QTEDIR/bin木铎校园 BBS 社区v/Bx[Ln
cp bin/uic $QTEDIR/bin/
2. Build Qvfb木铎校园 BBS 社区,|#`t$wfXnR'w
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
:Ki-dz4Vg0export QTDIR=$QT2DIR木铎校园 BBS 社区/T!x#M-N v ^$m.fH*I
export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区} z6bUYZWD
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
y-L Sd\9|;c0cd $QTEDIR/tools/qvfb木铎校园 BBS 社区9Zs1|m![J6}y]
make clean木铎校园 BBS 社区!Z3N B$I&Z@b+UF
tmake -o Makefile qvfb.pro木铎校园 BBS 社区 W!Slg0g
make木铎校园 BBS 社区*Y ~ A zq?9V2k"|
mv qvfb $QTEDIR/bin/
%G2nP{)sb2zx(j0这 一步build qvfb 并建立了从Qt/Embedded 2.3.10 到Qt 2.3.2 的静态库的链接。其中qvfb 工具用来生成Virtual framebuffer,这是一个非常有用的工具,它可以模拟在开发板上的显示情况,如果在Virtual framebuffer 中运行没有问题的话,可以直接通过交叉编译在开发板上运行。
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
:Ki-dz4Vg0export QTDIR=$QT2DIR木铎校园 BBS 社区/T!x#M-N v ^$m.fH*I
export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区} z6bUYZWD
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
y-L Sd\9|;c0cd $QTEDIR/tools/qvfb木铎校园 BBS 社区9Zs1|m![J6}y]
make clean木铎校园 BBS 社区!Z3N B$I&Z@b+UF
tmake -o Makefile qvfb.pro木铎校园 BBS 社区 W!Slg0g
make木铎校园 BBS 社区*Y ~ A zq?9V2k"|
mv qvfb $QTEDIR/bin/
%G2nP{)sb2zx(j0这 一步build qvfb 并建立了从Qt/Embedded 2.3.10 到Qt 2.3.2 的静态库的链接。其中qvfb 工具用来生成Virtual framebuffer,这是一个非常有用的工具,它可以模拟在开发板上的显示情况,如果在Virtual framebuffer 中运行没有问题的话,可以直接通过交叉编译在开发板上运行。
3. Build Qt/Embedded木铎校园 BBS 社区3tP3l5c!Z Ub;|
cd $QTEDIR木铎校园 BBS 社区*Q2}/b)bw:u1M+e5C`
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++木铎校园 BBS 社区;U1a-{x'nWy
export QTDIR=$QTEDIR
R3_V$ir-PHy|0export PATH=$QTDIR/bin:$PATH
;{ [?+cH!qv0export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
:B[!\)TuO%DB0make clean
Y s\l[0./configure -no-xft -qvfb -depths 4,8,16,32木铎校园 BBS 社区:K0kJIG/vV1N
make
cd $QTEDIR木铎校园 BBS 社区*Q2}/b)bw:u1M+e5C`
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++木铎校园 BBS 社区;U1a-{x'nWy
export QTDIR=$QTEDIR
R3_V$ir-PHy|0export PATH=$QTDIR/bin:$PATH
;{ [?+cH!qv0export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
:B[!\)TuO%DB0make clean
Y s\l[0./configure -no-xft -qvfb -depths 4,8,16,32木铎校园 BBS 社区:K0kJIG/vV1N
make
第三步 查看运行结果
如果上面各步都能够成功的编译通过,下面就可以通过运行
-Q"B:O j'G4ioy0Qt/Embedded 自带的demo 来查看运行结果。
f-o1[mk7kH@7R0 ●在Virtual framebuffer 上运行:
(v`:| pu}h1pI,b0 export QTDIR=$QTEDIR
1@%z%Q[xSvG%Bk*] p0 export PATH=$QTEDIR/bin:$PATH木铎校园 BBS 社区;l,Hl.HnY"d
export LD_LIBRARY_PATH=$QTEDIR/lib:$QT2DIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区 hKwN!}-xW
cd $QTEDIR/examples/launcher
7PCr P4z0 qvfb -width 640 -height 480 &
QzW/A_0K0 sleep 10
)J V1a#mg#hD'b0 ./launcher -qws
-Q"B:O j'G4ioy0Qt/Embedded 自带的demo 来查看运行结果。
f-o1[mk7kH@7R0 ●在Virtual framebuffer 上运行:
(v`:| pu}h1pI,b0 export QTDIR=$QTEDIR
1@%z%Q[xSvG%Bk*] p0 export PATH=$QTEDIR/bin:$PATH木铎校园 BBS 社区;l,Hl.HnY"d
export LD_LIBRARY_PATH=$QTEDIR/lib:$QT2DIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区 hKwN!}-xW
cd $QTEDIR/examples/launcher
7PCr P4z0 qvfb -width 640 -height 480 &
QzW/A_0K0 sleep 10
)J V1a#mg#hD'b0 ./launcher -qws
木铎校园 BBS 社区;b*gEbk
二 Qt/E 的交叉编译
二 Qt/E 的交叉编译
要将我们写好的程序发布到开发板上,我们需要对Qt/Embedded 重新编译,与前面在宿主机上编译类似,步骤如下:
;M3gD"YJu0
;M3gD"YJu0
1. Build Qt/Embedded
tar –xzvf qt-embedded-2.3.10-free.tar.gz木铎校园 BBS 社区'fCY+Pi.I:h
mv qt-2.3.10木铎校园 BBS 社区9VW BS.my
qt-2.3.10-target木铎校园 BBS 社区]%k*A4o`^
export TMAKEDIR=$PWD/tmake-1.13木铎校园 BBS 社区/Ok8F_D;O,@"k
export QT2DIR=$PWD/qt-2.3.2木铎校园 BBS 社区u4w q3l)y#NC4F
export QTEDIR=$PWD/qt-2.3.10-target
mv qt-2.3.10木铎校园 BBS 社区9VW BS.my
qt-2.3.10-target木铎校园 BBS 社区]%k*A4o`^
export TMAKEDIR=$PWD/tmake-1.13木铎校园 BBS 社区/Ok8F_D;O,@"k
export QT2DIR=$PWD/qt-2.3.2木铎校园 BBS 社区u4w q3l)y#NC4F
export QTEDIR=$PWD/qt-2.3.10-target
cd $QTEDIR
rRs D r0export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
|sBc3@ j y B0export QTDIR=$QTEDIR
(VbY\!c-W'Eq+~0export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区[)~A G\V
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
SA2{"i EW(dW"r0make clean木铎校园 BBS 社区T/l4@)]@m5i pF
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
`g |UST0make
.xx'xR.y0这步完成后,我们会在/$QTEDIR/lib/目录下面看到libqte.so libqte.so.2 libqte.so.2.3 libqte.so.2.3.10 这四个文件,我们可以使用file 命令来查看这个库文件是否是我们需要的在开发板上跑的库。木铎校园 BBS 社区fUE_3sky8d(N1l.|D X
file libqte.so.2.3.10
"Yh+pf J8D!X6H M0libqte.so.2.3.10: ELF 32-bit LSB shared object, ARM, version 1 (ARM), stripped
rRs D r0export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
|sBc3@ j y B0export QTDIR=$QTEDIR
(VbY\!c-W'Eq+~0export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区[)~A G\V
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
SA2{"i EW(dW"r0make clean木铎校园 BBS 社区T/l4@)]@m5i pF
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
`g |UST0make
.xx'xR.y0这步完成后,我们会在/$QTEDIR/lib/目录下面看到libqte.so libqte.so.2 libqte.so.2.3 libqte.so.2.3.10 这四个文件,我们可以使用file 命令来查看这个库文件是否是我们需要的在开发板上跑的库。木铎校园 BBS 社区fUE_3sky8d(N1l.|D X
file libqte.so.2.3.10
"Yh+pf J8D!X6H M0libqte.so.2.3.10: ELF 32-bit LSB shared object, ARM, version 1 (ARM), stripped
有了这个库以后我们就可以把它拷贝到我们的开发板中相应的库目录下面,这里我们选择了开发板上的/usr/lib 目录,将/$QTEDIR/lib/下的libqte.so*复制到/usr/lib 目录下。
首先要建立宿主机和开发板的通讯,假设本机的ip 地址为192.168.0.56 并且/root/share 为共享文件夹。木铎校园 BBS 社区/N-rD?2E2lL
cp –arf /$QTEDIR/lib/libqte.so* /root/share木铎校园 BBS 社区Uf0N3Z$r2]:w-t d
启动minicom
f1Y+lv*Y2cW.Ik0mount –t nfs –o nolock 192.168.0.56:/root/share /mnt/nfs将文件复制到开发板上
CB5P)|g0cp –arf /mnt/nfs/libqte.so* /usr/lib
cp –arf /$QTEDIR/lib/libqte.so* /root/share木铎校园 BBS 社区Uf0N3Z$r2]:w-t d
启动minicom
f1Y+lv*Y2cW.Ik0mount –t nfs –o nolock 192.168.0.56:/root/share /mnt/nfs将文件复制到开发板上
CB5P)|g0cp –arf /mnt/nfs/libqte.so* /usr/lib
2. 修改tmake 配置文件
2u]^7Pp\5l0vi $ TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf木铎校园 BBS 社区W/LL(a)Xs
将其中“TMAKE_LINK= arm-linux-gcc”
$Bp(LX Wz3PU0“TMAKE_LINK_SHLIB= arm-linux-gcc”
m8e3FI9z*^n)M0修改为:“TMAKE_LINK= arm-linux-g++”木铎校园 BBS 社区 K,wg&H F-_B
“TMAKE_LINK_SHLIB= arm-linux-g++”
2u]^7Pp\5l0vi $ TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf木铎校园 BBS 社区W/LL(a)Xs
将其中“TMAKE_LINK= arm-linux-gcc”
$Bp(LX Wz3PU0“TMAKE_LINK_SHLIB= arm-linux-gcc”
m8e3FI9z*^n)M0修改为:“TMAKE_LINK= arm-linux-g++”木铎校园 BBS 社区 K,wg&H F-_B
“TMAKE_LINK_SHLIB= arm-linux-g++”
3.生成可执行文件木铎校园 BBS 社区u{'mrP8zs
木铎校园 BBS 社区j(|gW!\hBl_
这里我们采用了Qt/Embedded自带的一个demo,它在/$QTEDIR/examples/progressbar目录下,这个目录包括下面几个文件: main.cpp、Makefile.in 、progressbar.h 、
木铎校园 BBS 社区j(|gW!\hBl_
这里我们采用了Qt/Embedded自带的一个demo,它在/$QTEDIR/examples/progressbar目录下,这个目录包括下面几个文件: main.cpp、Makefile.in 、progressbar.h 、
Makefile、progressbar.cpp、progressbar.pro,如果已经有了progressbar 的执行文件,可以使用make clean删除。木铎校园 BBS 社区p#i;QJV0D-]
progen –t app.t –o progressbar.pro木铎校园 BBS 社区;k#J1r%F|
echo $TMAKEPATH木铎校园 BBS 社区.s ]HQ!AV4V#v|{
查看返回的结果的结尾字符是否是“……/qws/linux-arm-g++”,如果不是的话需要在命令行中重新设置TMAKEPATH木铎校园 BBS 社区a jq1v%NqNe5l!b Nf
export TMAKEPATH=/tmake 的安装路径(如$TMAKEDIR)/lib/qws/linux-arm-g++
ja3s+Byn gy'@N_ t0此外还要使QTDIR指向Qt/Embedded 的安装路径,如:
siPN-i4|0export QTDIR=$QTEDIR 或者直接指定路径
+}"rg_3Z v(pFe[K0export QTDIR=……/qt-2.3.10
progen –t app.t –o progressbar.pro木铎校园 BBS 社区;k#J1r%F|
echo $TMAKEPATH木铎校园 BBS 社区.s ]HQ!AV4V#v|{
查看返回的结果的结尾字符是否是“……/qws/linux-arm-g++”,如果不是的话需要在命令行中重新设置TMAKEPATH木铎校园 BBS 社区a jq1v%NqNe5l!b Nf
export TMAKEPATH=/tmake 的安装路径(如$TMAKEDIR)/lib/qws/linux-arm-g++
ja3s+Byn gy'@N_ t0此外还要使QTDIR指向Qt/Embedded 的安装路径,如:
siPN-i4|0export QTDIR=$QTEDIR 或者直接指定路径
+}"rg_3Z v(pFe[K0export QTDIR=……/qt-2.3.10
完成了上面的环境变量的设置,并用echo 命令检查无误以后,就可以使用tmake 工具来生成我们需要的makefile 文件,在命令行中输入如下命令:
tmake –o makefile progressbar.pro
7We L6Ja)j:A0make
Z4ZA-Z N?['P!I0如果没出现错误的话就可以在当前目录下找到progressbar这个可执行文件,它就是在我们开发板上的相应目录中运行“./progressbar -qws”就可以运行程序了。
!@u9\D*d%G8L;sOi0 木铎校园 BBS 社区tE]&KM!Y8T1]
注:1).如果执行命令
G3kk3d3Y{6Z0[/mnt/nfs]./progressbar -qws木铎校园 BBS 社区mf U(QXU
./progressbar: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or direy
7We L6Ja)j:A0make
Z4ZA-Z N?['P!I0如果没出现错误的话就可以在当前目录下找到progressbar这个可执行文件,它就是在我们开发板上的相应目录中运行“./progressbar -qws”就可以运行程序了。
!@u9\D*d%G8L;sOi0 木铎校园 BBS 社区tE]&KM!Y8T1]
注:1).如果执行命令
G3kk3d3Y{6Z0[/mnt/nfs]./progressbar -qws木铎校园 BBS 社区mf U(QXU
./progressbar: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or direy
我的解决办法是从编译器目录下查找,并拷贝到开发板/usr/lib/中
^&PR\S0 木铎校园 BBS 社区Pv6S| H)XsS
即拷贝/usr/local/arm/3.4.1/arm-linux/lib/libstdc++.so* 到开发板/usr/lib/中木铎校园 BBS 社区G9En+~vU
2).[/mnt/nfs]./progressbar –qws
$e"YM#\JI9t0./progressbar: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such fy木铎校园 BBS 社区I(pY-q#A;_};d9No
方法同上
^&PR\S0 木铎校园 BBS 社区Pv6S| H)XsS
即拷贝/usr/local/arm/3.4.1/arm-linux/lib/libstdc++.so* 到开发板/usr/lib/中木铎校园 BBS 社区G9En+~vU
2).[/mnt/nfs]./progressbar –qws
$e"YM#\JI9t0./progressbar: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such fy木铎校园 BBS 社区I(pY-q#A;_};d9No
方法同上
三. 建立本机Qtopia 虚拟平台
软件:Redhat Linux9.0 for PC + minicom + Embeded Linux for 2410木铎校园 BBS 社区ly"G+z*oku.s
v
tmake-1.13.tar.gz qtopia-free-source-2.1.1.tar.bz2 qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2.tar.gz
tmake-1.13.tar.gz qtopia-free-source-2.1.1.tar.bz2 qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2.tar.gz
将本次实验所需的四个文件拷贝到/root/qtopia 目录下,我们以下的实验都是在这个目录下进行的。
木铎校园 BBS 社区J9Y;m9_*M0Kf
宿主机上建立虚拟的Qtopia 环境需要以下几个步骤:木铎校园 BBS 社区5C%u2GD%y:Lp
宿主机上建立虚拟的Qtopia 环境需要以下几个步骤:木铎校园 BBS 社区5C%u2GD%y:Lp
1. 解压缩安装文件:
tar jxvf qtopia-free-source-2.1.1.tar.bz2木铎校园 BBS 社区d bVN a?$E-l
mv qtopia-2.1.1 qtopia-2.1.1-target
]Iw:y qs[L];J0 tar xzf tmake-1.13.tar.gz木铎校园 BBS 社区K5Q KD+I/rQ,_1k/Q5`
tar xzf qt-x11-2.3.2.tar.gz
z8W*u9f_'Q)b g0 tar xzf qt-embedded-2.3.10-free.tar.gz
lX.G;x!cEh2k i0 mv qt-2.3.10 qt-2.3.10-target
mv qtopia-2.1.1 qtopia-2.1.1-target
]Iw:y qs[L];J0 tar xzf tmake-1.13.tar.gz木铎校园 BBS 社区K5Q KD+I/rQ,_1k/Q5`
tar xzf qt-x11-2.3.2.tar.gz
z8W*u9f_'Q)b g0 tar xzf qt-embedded-2.3.10-free.tar.gz
lX.G;x!cEh2k i0 mv qt-2.3.10 qt-2.3.10-target
export QPEDIR=$PWD/qtopia-2.1.1-target
,l Btbm-{ [ Q"|T0 export TMAKEDIR=$PWD/tmake-1.13
,l Btbm-{ [ Q"|T0 export TMAKEDIR=$PWD/tmake-1.13
export QT2DIR=$PWD/qt-2.3.2
HT3p,M4N(aW"S*n*zK!C0 export QTEDIR=$PWD/qt-2.3.10-target
HT3p,M4N(aW"S*n*zK!C0 export QTEDIR=$PWD/qt-2.3.10-target
2. Build Qt/X11:
6r9]1AbNklK0cd $QT2DIR木铎校园 BBS 社区+X'x4y|u
export TMAKEPATH=$TMAKEDIR/lib/linux-g++木铎校园 BBS 社区A-g q.dCv8g.|A
export QTDIR=$QT2DIR木铎校园 BBS 社区*N.xfX,} zF/P
export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区UL*k};OL#xy
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
drw.j&~0j!P~0./configure -no-xft
n];M3eK}{:MyQ0make木铎校园 BBS 社区p'{z g+S,Q7u)N*v0Z
mkdir $QTEDIR/bin木铎校园 BBS 社区1U4Yib I%T7O1t
cp bin/uic $QTEDIR/bin/
6r9]1AbNklK0cd $QT2DIR木铎校园 BBS 社区+X'x4y|u
export TMAKEPATH=$TMAKEDIR/lib/linux-g++木铎校园 BBS 社区A-g q.dCv8g.|A
export QTDIR=$QT2DIR木铎校园 BBS 社区*N.xfX,} zF/P
export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区UL*k};OL#xy
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
drw.j&~0j!P~0./configure -no-xft
n];M3eK}{:MyQ0make木铎校园 BBS 社区p'{z g+S,Q7u)N*v0Z
mkdir $QTEDIR/bin木铎校园 BBS 社区1U4Yib I%T7O1t
cp bin/uic $QTEDIR/bin/
3. Build Qvfb:木铎校园 BBS 社区*q'N(H-^5_7Ukn
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
U$] H0[B I,O7_\G0export QTDIR=$QT2DIR木铎校园 BBS 社区+l5E,m2q.H6DB
export PATH=$QTDIR/bin:$PATH:$TMAKEDIR/bin木铎校园 BBS 社区8b7Z1gj#L.o`!Au@;Y
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区w.N@3vl{
cd $QTEDIR/tools/qvfb
8V7h,~Y%z{%`/r v{y0tmake -o Makefile qvfb.pro木铎校园 BBS 社区R!rY \.Y-Q%aHo
make木铎校园 BBS 社区 e_2@-phB'p
mv qvfb $QTEDIR/bin/
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
U$] H0[B I,O7_\G0export QTDIR=$QT2DIR木铎校园 BBS 社区+l5E,m2q.H6DB
export PATH=$QTDIR/bin:$PATH:$TMAKEDIR/bin木铎校园 BBS 社区8b7Z1gj#L.o`!Au@;Y
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区w.N@3vl{
cd $QTEDIR/tools/qvfb
8V7h,~Y%z{%`/r v{y0tmake -o Makefile qvfb.pro木铎校园 BBS 社区R!rY \.Y-Q%aHo
make木铎校园 BBS 社区 e_2@-phB'p
mv qvfb $QTEDIR/bin/
4.Build libqte:木铎校园 BBS 社区i`3iUZ;sK/P3D
cd $QTEDIR木铎校园 BBS 社区~NT `7wQ?
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
%_$x+K%}2\e/t"`g0export QTDIR=$QTEDIR
q$i5h[CT0export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区4A GR{-XS!P
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
(D5nm8Y5i \ h_)d0cp -f $QPEDIR/src/qt/qconfig-qpe.h src/tools/
4wh7}$Y$NxmEG0./configure -system-jpeg -no-xft -qconfig qpe -qvfb -depths 4,8,16,32木铎校园 BBS 社区l_ sb*W7uTY9@
make sub-src
cd $QTEDIR木铎校园 BBS 社区~NT `7wQ?
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
%_$x+K%}2\e/t"`g0export QTDIR=$QTEDIR
q$i5h[CT0export PATH=$QTDIR/bin:$PATH木铎校园 BBS 社区4A GR{-XS!P
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
(D5nm8Y5i \ h_)d0cp -f $QPEDIR/src/qt/qconfig-qpe.h src/tools/
4wh7}$Y$NxmEG0./configure -system-jpeg -no-xft -qconfig qpe -qvfb -depths 4,8,16,32木铎校园 BBS 社区l_ sb*W7uTY9@
make sub-src
5.Build Qtopia:木铎校园 BBS 社区hl
Jr R
h
cd $QPEDIR木铎校园 BBS 社区+K!qC S.pD'z
export QTDIR=$QTEDIR木铎校园 BBS 社区"x9}r0k*}{uQ
export PATH=$QPEDIR/bin:$PATH
O TR0X]s m"V2a(kI0export木铎校园 BBS 社区gg!bs!Wu]"j X
LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区 U;Nx8P-X{6R
./configure
R C y0~$R(e7mKt#Q$S0make
cd $QPEDIR木铎校园 BBS 社区+K!qC S.pD'z
export QTDIR=$QTEDIR木铎校园 BBS 社区"x9}r0k*}{uQ
export PATH=$QPEDIR/bin:$PATH
O TR0X]s m"V2a(kI0export木铎校园 BBS 社区gg!bs!Wu]"j X
LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH木铎校园 BBS 社区 U;Nx8P-X{6R
./configure
R C y0~$R(e7mKt#Q$S0make
和前面编译Qt/Embedded 的基本步骤一样,还可以参考“./configure --help”,来进行选择。为了保证qvfb
能够正确显示qtopia 的结果,我们必须保证环境变量设置正确,我们可以通过“env”命令来检查下面的环境变量,也可以用下面的方法来检查。
l4DD^p^0 木铎校园 BBS 社区;XE*Ui)k#G#W
echo $QPEDIR木铎校园 BBS 社区&Z*W3`!_F;w\~B
/root/qtopia/qtopia-free-2.1.1/
V6W4dL0LyP0echo $QTDIR
sI/t L!R7f,cv0/root/qtopia/qt-2.3.10木铎校园 BBS 社区bBD,~$UQ7q
echo $LD_LIBRARY_PATH木铎校园 BBS 社区WKr3C5pg1Kg
/root/qtopia/qtopia-free-2.1.1/lib:/root/qtopia/qt-2.3.10/lib木铎校园 BBS 社区#H-tHvUH
echo $PATH木铎校园 BBS 社区]Sw7|u
/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
l4DD^p^0 木铎校园 BBS 社区;XE*Ui)k#G#W
echo $QPEDIR木铎校园 BBS 社区&Z*W3`!_F;w\~B
/root/qtopia/qtopia-free-2.1.1/
V6W4dL0LyP0echo $QTDIR
sI/t L!R7f,cv0/root/qtopia/qt-2.3.10木铎校园 BBS 社区bBD,~$UQ7q
echo $LD_LIBRARY_PATH木铎校园 BBS 社区WKr3C5pg1Kg
/root/qtopia/qtopia-free-2.1.1/lib:/root/qtopia/qt-2.3.10/lib木铎校园 BBS 社区#H-tHvUH
echo $PATH木铎校园 BBS 社区]Sw7|u
/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
出现上面的结果就可以正常的显示Virtual framebuffer,我们可以通过下面的命令在Virtual framebuffer 中实现Qtopia。
cd $QPEDIR/bin
#W,J uII/ZJ/L/]0qvfb &木铎校园 BBS 社区&|0f{&m2S;Y_!h&~ X
sleep 10木铎校园 BBS 社区XG5i-^j T4GH
./qpe.sh
#W,J uII/ZJ/L/]0qvfb &木铎校园 BBS 社区&|0f{&m2S;Y_!h&~ X
sleep 10木铎校园 BBS 社区XG5i-^j T4GH
./qpe.sh
四 Qtopia2.1.1 在2410-S 上的移植
软件:Redhat Linux9.0 for PC + minicom + Embeded Linux for 2410
-FHKymf1J0e2fsprogs-libs-1.37.tar.gz,libjpeg-iwmmxt.tar.bz2,qt-embedded-2.3.10-free.tar.gz
3d)u pO?0,qtopia-free-source-2.1.1.tar.bz2,qt-x11-2.3.2.tar.gz,qt-x11-free-3.3.4.tar.bz2,
t@:R*I|3K/ib0tmake-1.13.tar.gz,tslib.tar.gz,buildqtopia.sh
.LPf(Kfe0
-FHKymf1J0e2fsprogs-libs-1.37.tar.gz,libjpeg-iwmmxt.tar.bz2,qt-embedded-2.3.10-free.tar.gz
3d)u pO?0,qtopia-free-source-2.1.1.tar.bz2,qt-x11-2.3.2.tar.gz,qt-x11-free-3.3.4.tar.bz2,
t@:R*I|3K/ib0tmake-1.13.tar.gz,tslib.tar.gz,buildqtopia.sh
.LPf(Kfe0
1.实验可以分为以下几个步骤进行:
(1)
在装有linux 的pc
机上安装交叉编译环境。安装光盘时所安装的编译器版本较低,不能正常编译QT程序,所以编译前需要安装Qt/tools/arm-linux-gcc-
3.4.1.tar.bz2,并在/root/.bash_profile中修改编译器搜索路径。木铎校园 BBS 社区x&C5@1d6v5Uf6f
(2) 编译库文件:木铎校园 BBS 社区 D%inA'o3xw
(3) 编译qt-x11-2.3.2:木铎校园 BBS 社区-q!fK,y{gE
(4) 编译安装qt-embedded-2.3.2
8E2n%BXIz0(5)编译安装QTOPIA
5xO'M)W;I%lF@0(6) 将需要拷贝到开发板上的文件整理到一个单独的文件夹里面
^ QYECT;C0在本次实验中,buildqtopia.sh文件已为大家做好了以上几步,我们可以直接运行该文件进行编译。大家可以分析buildqtopia.sh 内容,掌握编译的步骤。
(2) 编译库文件:木铎校园 BBS 社区 D%inA'o3xw
(3) 编译qt-x11-2.3.2:木铎校园 BBS 社区-q!fK,y{gE
(4) 编译安装qt-embedded-2.3.2
8E2n%BXIz0(5)编译安装QTOPIA
5xO'M)W;I%lF@0(6) 将需要拷贝到开发板上的文件整理到一个单独的文件夹里面
^ QYECT;C0在本次实验中,buildqtopia.sh文件已为大家做好了以上几步,我们可以直接运行该文件进行编译。大家可以分析buildqtopia.sh 内容,掌握编译的步骤。
2. 编译步骤:
cd src
+ai-u#V5O]3x0./buildqtopia.sh
H&y.u(_]4^ O0当编译完成后,在src/qtopia-free-2.1.1/image/opt/Qtopia 下是编译完成的Qtopia 桌面环境。
$X-wX;Gf jc2J0说明:在编译完成后,src 下的各个目录对应如下软件包:木铎校园 BBS 社区m.L!z|'Cd/~
e2fsprogs-libs-1.37 ext2 文件系统工具包,Qtopia 用到了其中的libuuid
*Jm{U6Y#p#o,n%h0e2fs-install ext2 工具包编译结果木铎校园 BBS 社区"G/YG.T6@(_ f
jpeg-6b jpeg 解码库木铎校园 BBS 社区Z{eI!T$XQ#WQxw
jpeg-install jpeg 编译结果
+ai-u#V5O]3x0./buildqtopia.sh
H&y.u(_]4^ O0当编译完成后,在src/qtopia-free-2.1.1/image/opt/Qtopia 下是编译完成的Qtopia 桌面环境。
$X-wX;Gf jc2J0说明:在编译完成后,src 下的各个目录对应如下软件包:木铎校园 BBS 社区m.L!z|'Cd/~
e2fsprogs-libs-1.37 ext2 文件系统工具包,Qtopia 用到了其中的libuuid
*Jm{U6Y#p#o,n%h0e2fs-install ext2 工具包编译结果木铎校园 BBS 社区"G/YG.T6@(_ f
jpeg-6b jpeg 解码库木铎校园 BBS 社区Z{eI!T$XQ#WQxw
jpeg-install jpeg 编译结果
