Chinaunix首页 | 论坛 | 博客
  • 博客访问: 492285
  • 博文数量: 130
  • 博客积分: 2111
  • 博客等级: 大尉
  • 技术积分: 1373
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-28 09:55
个人简介

IT民工

文章分类

全部博文(130)

文章存档

2021年(1)

2019年(1)

2017年(3)

2014年(1)

2013年(3)

2012年(2)

2011年(3)

2010年(2)

2009年(114)

分类: LINUX

2009-08-31 12:48:06

qtopia PDA2.2.0编译安装
2008-01-11 11:37:05
版本:
     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 字体
设置好后就会看到中文界面啦
阅读(1690) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~