别说你会记笔记:qtopia PDA2.2.0编译安装

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 10:04:23
qtopia PDA2.2.0编译安装2009-08-03 14:29
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
http://www.qtopia.org.cn/ftp/mirror/ftp.trolltech.com/qtopia/source/qtopia-free-src-2.2.0.tar.gz
NOTE:   三个一样,下其中一个就OK

2.    libsrc
e2fsprogs-1.38.tar.gz
http://download.chinaunix.net/download.php?id=4655&ResourceID=2490
  
jpegsrc.v6b.tar.gz
http://freshmeat.net/redir/libjpeg/5665/url_tgz/jpegsrc.v6b.tar.gz

zlib-1.2.3.tar.gz
http://www.zlib.net/zlib-1.2.3.tar.gz

libpng-1.2.14.tar.bz2
http://superb-east.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.14.tar.bz2

参数文档:

http://www.qtopia.org.cn/phpBB2/viewtopic.php?t=134
http://www.qtopia.org.cn/phpBB2/viewtopic.php?t=858

一、pc机上安装
根据:http://www.qtopia.org.cn/phpBB2/viewtopic.php?t=134来的

注:这里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 字体
设置好后就会看到中文界面啦

Qt-Embedded 4 install
 
1、安装Qt-Embedded-linux

安装Qt-Embedded-linux有两种方法,一种是从源码安装,一种是直接安装。如果不需要在PC机上进行Qt-Embedded程序调试,可以不需要安装Qt-x11和Qt-Embedded for x86

(1) 源码安装
首先从 ftp://ftp.trolltech.com/qt/source/ 下载以下源码包:
qt-x11-opensource-src-4.5.0.tar
qt-embedded-linux-opensource-src-4.5.0.tar

安装Qt-x11
# tar jxvf qt-x11-opensource-src-4.5.0.tar
# cd qt-x11-opensource-src-4.5.0
# echo "yes" | ./configure –qvfb   –no-openssl –no-webkit
# make && make install

安装Qt-Embedded for x86
# tar jxvf qt-embedded-linux-opensource-src-4.5.0.tar
# cd qt-embedded-linux-opensource-src-4.5.0

安装中会提示错误,需要以下几个软件,

sudo apt-get install libjpeg-dev


# echo "yes" | ./configure \
-release \
-shared \
-no-qt3support \
-no-xmlpatterns \
-no-svg \
-no-webkit \
-system-zlib \
-qt-gif \
-system-libtiff \
-system-libpng \
-qt-libmng \
-system-libjpeg \
-make libs \
-make tools \
-nomake examples \
-nomake docs \
-nomake demo \
-no-nis \
-no-cups \
-no-iconv \
-no-dbus \
-no-openssl \
-xplatform qws/linux-x86-g++ \
-embedded x86 \
-qt-freetype \
-depths 16,18 \
-qt-gfx-qvfb \
-no-gfx-transformed \
-no-gfx-multiscreen \
-no-gfx-vnc \
-no-gfx-linuxfb \
-qt-kbd-tty \
-qt-kbd-usb \
-qt-kbd-qvfb \
-qt-mouse-pc \
-qt-mouse-qvfb \
-no-glib \
-silent

# make && make install

安装Qt-Embedded for ARM
# tar jxvf qt-embedded-linux-opensource-src-4.5.0.tar
# cd qt-embedded-linux-opensource-src-4.5.0
# echo "yes" | ./configure \
-release \
-shared \
-no-qt3support \
-no-xmlpatterns \
-no-svg \
-no-webkit \
-system-zlib \
-qt-gif \
-system-libtiff \
-system-libpng \
-qt-libmng \
-system-libjpeg \
-make libs \
-make tools \
-nomake examples \
-nomake docs \
-nomake demo \
-no-nis \
-no-cups \
-no-iconv \
-no-dbus \
-no-openssl \
-xplatform qws/linux-arm-g++ \
-embedded arm \
-little-endian \
-qt-freetype \
-depths 16,18 \
-qt-gfx-linuxfb \
-no-gfx-transformed \
-no-gfx-multiscreen \
-no-gfx-vnc \
-no-gfx-qvfb \
-qt-kbd-tty \
-qt-kbd-usb \
-qt-mouse-tslib \
-qt-mouse-pc \
-no-glib \
-silent

# make && make install

2.设置环境变量,例如:
仅当前用户有效(其他用户无效):修改$HOME/.bash_profile,加入:
PATH=/usr/local/Trolltech/Qt-4.3.5/bin:$PATH

所有用户有效(包括root和普通用户):
       修改/etc/profile,加入以下两行(一般在最后一行添加):
export PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH

2、程序调试和帮助

在PC机上调试Qt-Embedded程序的方法为,使用Qt-Embedded for x86的Qt库来编译Qt-Embedded程序,然后使用Qt-x11的qvfb工具仿真调试。下面以demo程序为例:
# tar jxvf demo.tar.bz2
# cd demo
# /usr/local/Trolltech/QtEmbedded-4.5.0/bin/qmake -project
# /usr/local/Trolltech/QtEmbedded-4.5.0/bin/qmake
# make
# /usr/local/Trolltech/Qt-4.5.0/bin/qvfb &
# ./demo -qws

运行以下程序可以查看Qt编程,调试,应用,布署等各方面的帮助。
# /usr/local/Trolltech/Qt-4.5.0/bin/assistant


3、将Qt-Embedded程序运行在目标板上

用Qt-Embedded for ARM编译Qt-Embedded应用程序,以demo为例:
# tar jxvf demo.tar.bz2
# cd demo
# /opt/Trolltech/QtEmbedded-4.5.0/bin/qmake -project
# /opt/Trolltech/QtEmbedded-4.5.0/bin/qmake
# make

将demo程序下载到目标板上,然后就可以运行demo程序。在运行程序前以下环境变量必须已经设置。

export QTDIR=/opt/QtEmbedded-4.5.0
export PATH=$QTDIR/bin:$PATH
export QWS_DISPLAY=LinuxFb:/dev/fb0
export QWS_SIZE=640x480
export QWS_SW_CURSOR=1
export QWS_MOUSE_PROTO=Tslib:/dev/ep93xx_ts
export QWS_KEYBOARD=TTY:/dev/ttyS0
export QT_ONSCREEN_PAINT=0
export PONTERCAL_FILE=/etc/pointercal

export LD_LIBRARY_PATH=$QTDIR/lib:/lib:/usr/lib:$LD_LIBRARY_PATH

export TSLIB_TSDEVICE=/dev/ep93xx_ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_CONSOLEDEVICE=/dev/tty
export TSLIB_FBDEVICE=/dev/fb0