在 VMWare-5.5+RedHat-9 下建立 本机 QTopia-2.1.1 虚拟平台 张大海 2008-5-9 一 资源下载 1. 需要以下安装包 : tmake-1.13.tar.gz qtopia-free-source-2.1.1.tar.gz qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2.tar.gz qt-x11-free-3.3.4.tar.gz e2fsprogs-1.39.tar.gz jpegsrc.v6b.tar.gz 2. 下载地址 : 1)QT 包 : 镜象地址 :http://www.qtopia.org.cn/ftp/mirror/ftp.trolltech.com/qt/source/ 奇趣公司 :ftp://ftp.trolltech.com/qt/source/ 2)e2fsprogs: e2fsprogs-devel 这个包可以提供 uuid 支持 下载地址 :http://e2fsprogs.sourceforge.net/ 3)libjpeg:Qtopia 不提供 jpeg 库,Qtopia 需要 Qt/Embedded 配置为支持 jpeg 下载地址 : http://www.ijg.org/ 第 1 页共 8 页
二 安装 Qtopia2.1.1 1. 安装路径 : Qtopia 的所有相关包都被安装在 /root/trolltech/ 目录下, 如上图所示 各目录与安装包的关系如下 : tmake-1.13 tmake-1.13.tar.gz qtopia-2.1.1 qtopia-free-source-2.1.1.tar.gz qte-2.3.10 qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2 qt-x11-2.3.2.tar.gz qt-x11-3.3.4 qt-x11-free-3.3.4.tar.gz e2fsprogs-1.39 e2fsprogs-1.39.tar.gz jpeg-6b jpegsrc.v6b.tar.gz shell 自己编写的一个启动 Qtopia-2.1.1 的脚本 2. 解压安装包 将本次实验所需的所有安装包拷贝到 /root/trolltech/ 目录下, 我们以下的实验都是在这个目录下进行的 #>tar -zxvf e2fsprogs-1.39.tar.gz #>tar -zvxf jpegsrc.v6b.tar.gz #>tar -zxvf tmake-1.13.tar.gz #>tar -zxvf qt-x11-free-3.3.4.tar.gz #>mv qt-x11-free-3.3.4 qt-x11-3.3.4 #>tar -xzvf qt-x11-2.3.2.tar.gz #>tar -xzvf qt-embedded-2.3.10-free.tar.gz #>mv qt-2.3.10 qt-2.3.10 #>tar -xzvf qtopia-free-source-2.1.1.tar.gz #>mv qtopia-free-2.1.1 qtopia-2.1.1 第 2 页共 8 页
3. 初始化环境变量 #>export QTEDIR=/root/TrollTech/qt-2.3.10-host #>export QT2DIR=/root/TrollTech/qt-2.3.2 #>export TMAKEDIR=/root/TrollTech/tmake-1.13 #>export QPEDIR=/root/TrollTech/qtopia-2.1.1-host #>export QT3DIR=/root/TrollTech/qt-x11-3.3.4 #>export DQTDIR=$QT3DIR #>export QTDIR=$QTEDIR #>export PATH=$QT2DIR/bin:$QTEDIR/bin:$QPEDIR/bin:$DQTDIR/bin:$QT3DIR/bin: $QTDIR/bin:$TMAKEDIR/bin:$PATH #>export LD_LIBRARY_PATH=$QT2DIR/lib:$QTEDIR/lib:$QPEDIR/lib:$DQTDIR/lib: $QT3DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH 注 : 我们即可以直接通过命令行的形式一条一条地执行这些命令, 也可以写成一个 init.sh 文件的形式, 然后再通过命令 : #>source the_path_of_init.sh/init.sh 来初始化环境变量 4. 安装 tmake #>cd /root/trolltech #>export TMAKEDIR=$PWD/tmake-1.13 #>export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++ #>export PATH=$TMAKEDIR/bin:$PATH 5. 安装 qt-x11-3.3.4 #>cd $QT3DIR #>export TMAKEPATH=$TMAKEDIR/lib/linux-g++ #>export QTDIR=$QT3DIR #>export PATH=$QTDIR/bin:$PATH #>export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH #>./configure 6. 安装 qt-x11-2.3.2 #>cd $QT2DIR #>export TMAKEPATH=$TMAKEDIR/lib/linux-g++ #>export QTDIR=$QT2DIR #>export PATH=$QTDIR/bin:$PATH #>export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 第 3 页共 8 页
#>./configure -no-xft #>mkdir $QTEDIR/bin #>cp bin/uic $QTEDIR/bin/ 7. 安装 qvfb #>export TMAKEPATH=$TMAKEDIR/lib/linux-g++ #>export QTDIR=$QT2DIR #>export PATH=$QTDIR/bin:$PATH:$TMAKEDIR/bin #>export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH #>cd $QTEDIR/tools/qvfb #>tmake -o Makefile qvfb.pro #>mv qvfb $QTEDIR/bin/ 8. 安装 libqte #>cd $QTEDIR #>export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++ #>export QTDIR=$QTEDIR #>export PATH=$QTDIR/bin:$PATH #>export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH #>cp -f $QPEDIR/src/qt/qconfig-qpe.h src/tools/ #>./configure -system-jpeg -gif -no-xft -qconfig qpe -qvfb -depths 4,8,16,32 sub-src 9. 安装 e2fsprogs-1.39 #>cd /root/trolltech/e2fsprogs-1.39 #>./configure -enable-elf-shlibs install lib/uuid/ 安装 qtopia 需要的文件 : 将 /root/trolltech/e2fsprogs-1.35/lib/ 目录下 uuid 的文件夹复制到 /root/trolltech/qtopia-2.1.1/include/ 下 第 4 页共 8 页
将 /root/trolltech/e2fsprogs-1.35/lib/ 中的 libuuid.a libuuid.so 复制到 /root/trolltech/qtopia-2.1.1/lib/ 下 10. 安装 jpeg #>mkdir /usr/local/man #>mkdir /usr/local/man/man1 #>cd /root/trolltech/jpeg-6b #>./configure --enable-shared --enable-static install -lib #>ls /usr/local/lib libjpeg.la libjpeg.so libjpeg.so.62 libjpeg.so.62.0.0 此目录内的文件如下图所示 : 第 5 页共 8 页
我们必须先新建 /usr/local/man 和 /usr/local/man/man1 这两个文件夹, 如下图所示 这是因为 jpeg 在编译的时候, 需要使用这个路径 否则报错 : /usr/bin/install -c -m 644./cjpeg.1 /usr/local/man/man1/cjpeg.1 /usr/bin/install: cannot create regular file `/usr/local/man/man1/cjpeg.1': No such file or directory 缺少 /usr/local/man 目录及 man1 子目录, 新建后重新编译成功 下面安装 qtopia 需要的文件 : #>cp /root/trolltech/jpeg-6b/jpeglib.h /root/trolltech/qtopia-2.1.1/include #>cp /usr/local/lib/libjpeg.* /root/trolltech/qtopia-2.1.1/lib 11. 安装 qtopia #>cd $QPEDIR #>export QTDIR=$QTEDIR #>export PATH=$QPEDIR/bin: $PATH #>export LD_LIBRARY_PATH=$QPEDIR/lib: $LD_LIBRARY_PATH #>./configure install qtopia 安装完整后, 其下有一个 image 目录, 此目录存放了运行 Qtopia 的所有文件 如果需要在开发板上运行, 则可以把此文件夹下的所有文件拷贝到开发板的文件系统中去 ( 当然, 需要经过交叉编译 ) 12. 运行 Qtopia-2.1.1 #>cd /root/trolltech/qtopia-2.1.1/bin #>qvfb & #>sleep 5 #>./qpe.sh 可以看到界面如下图所示 但是不能运行其中的任何一个应用程序 第 6 页共 8 页
13. 添加启动脚本, 运行 Qtopia 自带的应用程序 自己编写一个启动脚本 (demo.sh) 如下 : #!/bin/sh export QTEDIR=/root/TrollTech/qte-2.3.10 export QT2DIR=/root/TrollTech/qt-x11-2.3.2 export TMAKEDIR=/root/TrollTech/tmake-1.13 export QPEDIR=/root/TrollTech/qtopia-2.1.1 export QT3DIR=/root/TrollTech/qt-x11-3.3.4 export DQTDIR=$QT3DIR export QTDIR=$QTEDIR export PATH=$QT2DIR/bin:$QTEDIR/bin:$QPEDIR/bin:$DQTDIR/bin:$QT3DIR/bin:$QTDIR/ bin:$tmakedir/bin:$path export LD_LIBRARY_PATH=$QT2DIR/lib:$QTEDIR/lib:$QPEDIR/lib:$DQTDIR/lib:$QT3DIR/ lib:$qtdir/lib:$ld_library_path export QTDIR=/root/TrollTech/qtopia-2.1.1/image/opt/Qtopia export QPEDIR=/root/TrollTech/qtopia-2.1.1/image/opt/Qtopia export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH export PATH=$QPEDIR/bin:$PATH cd /root/trolltech/qtopia-2.1.1/bin echo "Starting QVFB..." qvfb & sleep 5s echo "Starting Qtopia 2.1.1..."./qpe.sh 第 7 页共 8 页
把此文件保存到 /root/trolltech/shell 下, 运行 demo.sh, 即可启动 Qtopia-2.1.1 #>cd /root/trolltech/shell #>source demo.sh 下面是运行 clock 程序的界面 注意 : 可以把以上所有的命令都做成.sh 文件的形式, 然后直接调用 详见 /shell/readme 文件中的说明 第 8 页共 8 页