版本: qtopia PDA 2.2.0 系统: ubuntu 7.04 gcc版本: gcc-3.3.5 arm-linux-gcc-3.4.1 注: gcc 版本不要高于4.0,否则编译会出错 资源: 1. qtopia: ftp://ftp.trolltech.com/qtopia/source/qtopia-free-src-2.2.0.tar.gz ftp://ftp.qtopia.org.cn/mirror/ftp.trolltech.com/qtopia/source/qtopia-free-src-2.2.0.tar.gz NOTE: 三个一样,下其中一个就OK 2. libsrc e2fsprogs-1.38.tar.gz jpegsrc.v6b.tar.gz zlib-1.2.3.tar.gz libpng-1.2.14.tar.bz2 参数文档: 一、pc机上安装 根据:来的 注:这里make 之前要安装几个lib库的支持,否则会出现如: 找不到-lqte,-luuid的错误 /**************************** lib 库安装 **************/ 1.e2sfsprogs-1.38 tar zxvf e2fsprogs-1.38.tar.gz cd e2fsprogs-1.38 ./configure --enable-elf-shlibs make cp lib/libuuid.so* ...../qtopia/lib 2.jpeg-6b tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b ./configure --enable-shared make cp .lib/libjpeg.so* ......../qtopia/lib 3.zlib-1.2.3 tar zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure --shared make cp libz.so* ........../qtopia/lib 4.libpng-1.2.14.tar.bz2 tar jxvf libpng-1.2.14.tar.bz2 cd libpng-1.2.14 cp scripts/makefile.linux ./Makefile vim png.h 修改第382行 (382 gg)为: #include "../zlib-1.2.3/zlib.h" 要求zlib-1.2.3和libpng-1.2.14在同一目录 make cp libpng12.so* ....../qtopia/lib cp libpng12.so ......./qtopia/lib/libpng.so /**************** qtopia 安装 *************************/ 命令: 编译: tar zxvf qtopia-free-src-2.2.0.tar.gz cd qtopia-free-2.2.0 export PATH=$PWD/tmake/bin:$PATH echo "yes"|./configure -qte no-keypad -qpe pda make make install 运行: cd qtopia-free-2.2.0/qtopia/image/opt/Qtopia mkdir demohome cd ../../../bin ./startdemo -home qtopia/image/opt/Qtopia/demohome -sound system --------------------------------------------*/ 二、交叉编译 1、lib 库交叉编译 注:此处的触摸屏我用的qtopia自己带的支持,没有使用tslib另外支持 将编译后产生的lib和头文件放在/home/arm/lib和/home/arm/include目录下面了 mkdir /home/arm cd /home/arm mkdir include lib 到libsrc所在的目录: e2fs: ./configure --host=arm-linux --enable-elf-shlibs --with-cc=arm-linux-gcc --with-linker=arm-linux-ld make cp lib/libuuid.so* /home/arm/lib jpeg: ./configure –enable-shared vi Makefile 修改: CC= arm-linux-gcc AR= arm-linux-ar rc AR2=arm-linux-ranlib make cp .lib/libjpeg.so* /home/arm/lib cp *.h /home/arm/include zlib: cd /home/arm/zlib ./configure –shared vi Makefile 修改: [begin] ... CC=arm-linux-gcc ... LDSHARED=arm-linux-gcc -shared -Wl,-soname,libz.so.1 CPP=arm-linux-gcc -E ... AR=arm-linux-ar rc RANLIB=arm-linux-ranlib ... prefix =/usr/local/arm/2.95.3/arm-linux ... [end] make cp libz.so* /home/arm/lib/ cp *.h /home/arm/include/ libpng: /home/arm/libpng vim png.h 修改第382行为:#include "../zlib-1.2.3/zlib.h" cp scripts/makefile.linux ./Makefile vi Makefile 修改: [begin] ... AR_RC=arm-linux-ar rc CC=arm-linux-gcc ... RANLIB=arm-linux-ranlib ... prefix=/usr/local/arm/2.95.3/arm-linux ... [end] make cp libpng12.so* /home/arm/lib/ cp libpng12.so /home/arm/lib/libpng.so cp *.h /home/arm/include/ 此处要将png.h第382行改回原来的: #include "zlib.h" 2.准备 进qtopia-free-2.2.0目录 vi qtopia/mkspecs/qws/linux-arm-g++/qmake.conf 将此行 QMAKE_LIBS_QT = -lqte 修改为 QMAKE_LIBS_QT = -lqte -lpng -lz -luuid -ljpeg NOTE: 加了tslib库的改为: QMAKE_LIBS_QT = -lqte -lpng -lts -lz -luuid -ljpeg 使用qtopia自带触摸支持: 修改: vim qtopia/src/qt/qconfig-qpe.h 在最后加上 #define QT_QWS_IPAQ #define QT_QWS_IPAQ_RAW 两行,使其自动对触摸屏的支持 设置环境变量 : 我的是在qtopia-free-2.2.0目录下面 export PATH=$PWD/tmake/bin:$PATH export QTDIR=$PWD/qt2 export QPEDIR=$PWD export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH export TMAKEDIR=$QPEDIR/tmake export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++ cd $QPEDIR/qtopia/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 3、编译安装 进qtopia-free-2.2.0目录 ./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 -I/home/arm/include -L/home/arm/lib -lpng -lz -luuid -ljpeg" -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 240x320 -I/home/arm/include -L/home/arm/lib -prefix=/home/qtopia-free-2.2.0/target' make make install 在target 目录下会生成交叉编译好的可运行文件,将其cpoy到arm板上设置好环境变量即可运行 4、在arm 板上运行 我的是yc2440的板子,linux2.6.13 target 目录放在根目录下/target 环境变量设置: export HOME=/root export QTDIR=/target export QPEDIR=/target export QWS_KEYBOARD=/dev/tty export QWS_MOUSE_PROTO="TPanel:/dev/h3600_tsraw" export PATH=/target/bin:$PATH qpe命令后即可进入漂亮的QT界面啦 三、汉化 进qtopia-free-2.2.0/qtopia目录 设置环境变量: export QPEDIR=/home/qtopia-free-2.2.0/qtopia export QTDIR=/home/qtopia-free-2.2.0/qt2 export DQTDIR=/home/qtopia-free-2.2.0/dqt PATH=$QPEDIR/bin:$QTDIR/bin:$DQTDIR/bin:$PATH ./configure --languages "zh_CN" make lupdate cd bin ./nct_lupdate 此步后在qtopia/i18n/目录下会产生zh_CN 文件夹,并在zh_CN 文件夹下面会产生 主界面的 .ts文件 cd qtopia/i18n/zh_CN 新建 .driectory 文件 vim .directory 内容如下: [Translation] File=QtopiaI18N Context=Chinese [Desktop Entry] Name[]=Chinese 修改qtopia-free-2.2.0/qtopia/i18n/zh_CN/QtopiaDefault.ts 中的FontMap 这段代码变成:FontMap Small,helvetica,10 Petit,unifont,11 用linguist工具把所有的 .ts 文件翻译成中文 然后在qtopia目录下 make install 汉化完成,在target 目录的i18n/zh_CN中会产生 .qm文件 NOTE: 进入QT界面后,进settings ,language选项将语言设置成中文 同时在apperance选项中选择含有中文支持的字体,如其自带的unifont 字体 设置好后就会看到中文界面啦