红联Linux门户
Linux帮助

redhat9.0下交叉编译arm&qtpoia2.2记录

发布时间:2008-04-09 15:57:07来源:红联作者:iSPanle
新的项目就要开始了,是用linux下的qt开发,主板用的是freescale的iMX21板子,由于它们给的学习板子里边已经有qtopia2.1,出于学习和深入研究的目的。开始我对qt的学习过程:

1. 开发环境
HOST 环境:
系统:redhat9.0完全安装
交叉工具arm 2.9.53 TARGET环境
freescaleiMX21(arm9)
320*240屏外加触摸屏
软件:
1.qtopia-free-src-2.2.0.tar.gz
2.e2fsprogs-1.39.tar.gz
3.jpegsrc.v6b.tar.gz
4.libpng-1.2.14.tar.bz2
5.tslib-1.3.tar.bz2
6.zlib-1.2.3.tar.bz2
7.freetype-2.1.4.tar.bz2
说明:2-6以前已经交叉编译过,并且将相关的库文件和头文件分别放到了交叉编译器的
arm-linux/lib
arm-linux/include目录下面
工作目录为/home/nfs

2.交叉编译过程

2.1安装freetype-2.1.4.tar.bz2
解压后进入到解压后的目录,执行以下命令:
./configure --prefix=/usr
make
make install

2.2 解压qtopia-free-src-2.2.0.tar.gz
tar zxvf qtopia-free-src-2.2.0.tar.gz

2.3 得到本机运行版本uic 工具
下载地址:http://vanille.de/tools/uic-qt2
改变权限:
chmod u+rx uic-qt2
改名:
mv uic-qt2 uic
拷贝到qtopia-free-2.2.0/qt/bin中
cp uic /home/nfs/qtopia-free-2.2.0/qt/bin中

2.4 设置环境变量
export QPEDIR=/home/nfs/qtopia-free-2.2.0/qtopia
export QTDIR=/home/nfs/qtopia-free-2.2.0/qt2
export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib
export TMAKEDIR=/home/nfs/qtopia-free-2.2.0/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++

2.5 修改相关文件

1. qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf

将此行
QMAKE_LIBS_QT = -lqte

修改为
QMAKE_LIBS_QT = -lqte -lpng -lz -luuid -ljpeg

2.修改$QPEDIR/src/qt/qconfig-qpe.h文件,定义相应的宏,在最后加上
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW

这样是为了让Qtopia自动支持触摸屏

3.修改qtopia-free-2.2.0/qt2/include/qvaluestack.h

将remove( this->fromLast() );改为this->remove( this->fromLast() );

4.qtopia-free-2.2.0/qtopia/src/3rdparty/plugins/codecs/libflash/

将其中的jpeglib.h改名为jpeglib.h.bak

5.qtopia-free-2.2.0/qtopia/src/libraries/qtopia/qdawg.cpp

将QDawgPrivate::~QDawgPrivate()改为~QDawgPrivate()

2.6 配置

准备配置文件:
cp $QPEDIR/src/qt/qconfig-qpe.h $QTDIR/src/tools
cd $QPEDIR/src/libraries/qtopia
cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp
cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h

建立安装目录:
mkdir /home/nfs/qtopia

配置:

echo 'yes'|./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 16,24 -system-jpeg -system-libpng -system-zlib -gif -thread -no-xft -release -lpng -lz -luuid -ljpeg" -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 320x240 -prefix=/home/nfs/qtopia'

2.7 make

2.8 make install

2.9 将qtopia拷贝至USB,mount到/mnt目录

2.10 设置环境变量并运行

export QTDIR=/mnt/qtopia

export QPEDIR=/mnt/qtopia
export QWS_MOUSE_PROTO="TPanel:/dev/h3600_tsraw"

export PATH=/mnt/qtopia/bin:$PATH
export LD_LIBRARY_PATH=/mnt/qtopia/lib
export QWS_KEYBOARD=TTY

说明:开发板上的库文件的版本不一致,可以将这些库文件拷贝到mnt/qtopia中。
文章评论

共有 0 条评论