下载相关软件包qt-embedded-2.3.10-free.tar.gz,qtopia-free-source-2.1.1.tar.gz,gcc-2.95.3.tar.gz, cross-arm-extra.tgz,qt-x11-2.3.2,tmake-1.13.tar.gz
1.解压gcc-2.95.3.tar.gz到/usr/local/arm下和cross-arm-extra.tgz,qt-x11-2.3.2(编译好的jpeg.uuid.zlib库, 拷贝到/usr/local/arm/2.95.3下的include和lib目录里)
2.编译qt-x11-2.3.2
参考http://blog.youkuaiyun.com/snailjava/archive/2007/02/13/1509081.aspx,因为需要moc和uic工具
(注意!)我在FC6编译本地桌面环境时,重新安装了GCC3的版本,因为FC6自带的版本太高,编译Qtopia时报错
3.编译qte
解压qt-embedded-2.3.10-free.tar.gz(我的目录/home/qt/newqt/qte2)
拷贝qt-x11-2.3.2中/bin目录下的 uic和moc工具到/home/qt/newqt/qte2/bin下
解压qtopia-free-source-2.1.1.tar.gz(我的目录/home/qt/newqt/qtopia),拷贝 /home/qt/newqt/qtopia/src/qt/qconfig-qpe.h到qte中src/tools目录(/home/qt/newqt/qte2/src/tools).
cd /home/qt/newqt/qtopia/src/libraries/qtopia目录
cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h
cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp
开始编译,我写了个脚本set-env,如下:
#!/bin/bash
export QTDIR=$PWD
export QTEDIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export PATH=/usr/local/arm/2.95.3/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
echo yes | ./configure -platform linux-x86-g++ -xplatform linux-arm-g++ -qconfig qpe -depths 16,24,32 -system-zlib -vnc -tslib -system-jpeg -release
make
保存名为set-env文件
#chmod 777 set-env
#./source set-env (这样就开始编译了)
4. 编译qtopia
到/home/qt/newqt/qtopia目录
修改mkspecs/qws/linux-arm-g++下的qmake.conf文件,修改几行如下
QMAKE_CC = /usr/local/arm/2.95.3/bin/arm-linux-gcc
QMAKE_CXX = /usr/local/arm/2.95.3/bin/arm-linux-g++
QMAKE_LINK = /usr/local/arm/2.95.3/bin/arm-linux-g++
QMAKE_LINK_SHLIB = /usr/local/arm/2.95.3/bin/arm-linux-g++
QMAKE_LIBS_QT = -lqte -lts -lz -luuid -ljpeg
开始编译,写个脚本(set-env)如下:
#!/bin/bash
export QPEDIR=$PWD
export QTDIR=/home/qt/newqt/qte2
export QTEDIR=$QTDIR
export PATH=/usr/local/arm/2.95.3/bin:$PATH
export PATH=$QTDIR/bin:$PATH
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
echo yes | ./configure -xplatform linux-arm-g++ -edition pda -qconfig qpe -shared -qtopia -arch arm -displaysize 480x272 -release
make
make install
保存名为set-env
#source set-env (开始编译)
编译后会生成image/opt/Qtopia目录,拷贝QTE目录中的几个库文件到image/opt/Qtopia/lib目录中,
5.移植到目标板
用NFS服务 mount目标板的/tmp/qt4(这是我在目标板建立的目录)下,也许还要mount 本地主机/usr/share/zoneinfo目录到目标板相同目录(时区文件在里面),没有可以先建立.
写个脚本执行测试,如:
#! /bin/sh
cd /tmp
#echo "extract QTE desktop..."
export HOME=/tmp export QTDIR=/tmp/qt4
export KDEDIR=/tmp/kde
export T_ROOT=/tmp/ts export
QPEDIR=/tmp/qt4
export QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts
export LD_LIBRARY_PATH=/tmp/qt4/lib:$T_ROOT/lib:$LD_LIBRARY_PATH
export QWS_DISPLAY=Transformed:Rot90
./tmp/qt4/bin/qpe -qws &
这样就可以看到qtopia的启动界面了 相关参考可在www.qtopia.org.cn论坛里搜索