Chinaunix首页 | 论坛 | 博客
  • 博客访问: 180688
  • 博文数量: 80
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 835
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-29 10:30
文章分类
文章存档

2009年(12)

2008年(60)

2007年(8)

我的朋友

分类: LINUX

2007-12-27 16:31:32

宿主机Linux操作系统为Fedro Core 5

交叉编译工具链版本:arm-linux-g++ 2.95.3

宿主机编译工具链GCC 版本为4.1.0

QT-X11版本为2.3.2

QT/E版本为2.3.7

QTOPIA版本为1.7.0


1)编译QT-X11

  • 解压qt-x11-2.3.2.tar.gz,并更改解压文件夹名为qt-x11

  • cd qt-x11

  • 更改qt-x11文件夹中src/tools/qvaluestack.h57行源代码remove( this->fromLast() );this->remove( this->fromLast() );否则,会出现[xml/qxml.o]错误

  • 建立set-env文件

    export QTDIR=$PWD

    export PATH=$QTDIR/bin:$PATH

    export MANPATH=$QTDIR/doc/man:$MANPATH

    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

    echo yes | ./configure -no-xft -no-opengl -no-sm

    make

  • 在该文件夹下,执"source set-env"命令(.set-env之间有空格)


2)编译目标机版本的qte-2.3.7

  • 为了编译QTOPIA,将QTOPIA文件夹下./src/qt/qconfig-qpe.h拷贝到QTE文件夹下 src/tools/

  • 然后建立set-env文件

    #!/bin/bash

    #编译QTE脚本

    #此处$PWD指的是QTE所在的文件夹

    export QTDIR=$PWD

    export QTEDIR=$QTDIR

    export PATH=$QTDIR/bin:$PATH

    export PATH=/usr/local/arm/2.95.3/bin:$PATH

    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

    echo yes | ./configure -platform linux-x86-g++ -xplatform linux-arm-g++ -qconfig qpe -depths 16,24,32

    make

  • 执行"source set-env"

  • 注意,在此处configure时,一定要写明platformxplatform,且platform要设为linux-x86-g++,否则当使用linux-generic-g++时,会找当前系统默认的g++,由于前面在PATH处设定新的g++路径,所以会出现错误。

  • 如果需要移植到目标机上,则将$QTEDIR/lib/libqte.so.x.y.z拷贝至目标机上lib文件夹下,并命名为/lib/libqte.so.x(根据前面的libqte编号而定);

    $QTEDIR/lib/fonts/fontdir拷贝到目标机上qt/e的安装路径上(通过在目标机上设置$QTDIR来实现),如/usr/local/qt-embedded/lib/fonts/fontdir


3)编译目标机版本的qtopia-1.7.0

  • 由于在编译qtopia时,需要用到QTEuic命令来解释有关的资源,所以此处,需要将前面编译的qt-x11bin目录下的uic命令拷贝至QTEDIR/bin下。

  • 建立set-env文件:

    #!/bin/bash

    #安装QTOPIA

    export QPEDIR=$PWD

    #此处的QTDIR是前面编译的QT/E的路径

    export QTDIR=/friendly-arm/arm-qtopia/qt

    export QTEDIR=$QTDIR

    #本机工具链的位置,根据个人情况设置

    export PATH=/usr/local/arm/2.95.3/bin:$PATH

    export PATH=$QTDIR/bin:$PATH

    export PATH=$QPEDIR/bin:$PATH

    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

    cd ./src

    echo yes | ./configure -platform linux-arm-g++

    make

  • 执行"source set-env"

  • 如果需要移植到目标机上,将QPEDIR目录下的bin, apps, etc, plugins, services, sounds, i18n, lib, pics, help文件夹拷贝到目标机上的QPEDIR处(通过设置QPEDIR来实现)

  • 在目标机的bin目录下,建立qtopia脚本文件(如下)

    #!/bin/sh

    export set HOME=/root

    export set QTDIR=/opt/qt

    export set QPEDIR=/opt/qtopia

    export set QWS_KEYBOARD="USB:/dev/input/event1"

    export set QWS_MOUSE_PROTO="USB:/dev/input/mouse0"

    export set PATH=$QPEDIR/bin:$PATH

    export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib

    $QPEDIR/bin/qpe > /dev/null 2>/dev/null

  • 在目标机启动后,就可以使用qtopia直接启动

阅读(767) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~