配置qtopia-free-2.1.1 桌面开发环境(qtopia系列文章-1)

来源:互联网 发布:苹果流量统计软件 编辑:程序博客网 时间:2024/06/05 14:40

配置qtopia-free-2.1.1 桌面开发环境

 

 

这篇文章主要介绍了如何编译qtopia-free-2.1.1 ,以及运用QVFB搭建桌面开发环境。

 

 

编译qtopia-free-2.1.1

 

编译前准备!

qt-embedded-free-3.3.4.tar

qt-embedded-2.3.10-free.tar

qt-x11-2.3.2.tar

qtopia-free-source-2.1.1.tar

tmake-1.13.tar.gz

 

 

 

开始编译!

然后严格按照以下顺序编译

:qtopia-free-2.1.1的文中的Building Qtopia from Source 一章)

 

Build Qt 3.3 + tools
To build Qt 3.3 and the tools you must do the following:

·             cd $DQTDIR (这里漏掉一步,先设置export DQTDIR=$(QT3.3的目录路径)

·             export QTDIR=$DQTDIR

·             export PATH=$QTDIR/bin:$PATH

·             export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

·             echo yes | ./configure -fast -thread

·             make sub-src

·             cd tools/linguist/lrelease

·             make

·             cd ../lupdate

·             make

·             cd ../../designer/uilib

·             make

·             cd ../uic

·             Make

 

 

Build Qt 2.3.2
To build Qt 2.3.2 you must do the following:

·             cd $QT2DIR(这里漏掉一步,先设置export QT2DIR =$(QT2.3.2的目录路径)

·             export TMAKEPATH=$TMAKEDIR/lib/linux-g++

·             export QTDIR=$QT2DIR

·             export PATH=$QTDIR/bin:$PATH

·             export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

·             ./configure -no-xft

·             make

·             mkdir $QTEDIR/bin

·             cp bin/uic $QTEDIR/bin/

 

 

Build QVfb

(注:关于QVFB嵌入式的虚拟帧缓的介绍,看本文后面)
In this step we build and link the qvfb sources from Qt 2.3.10 against the static Qt library from Qt 2.3.2.

·             export TMAKEPATH=$TMAKEDIR/lib/linux-g++

·             export QTDIR=$QT2DIR

·             export PATH=$QTDIR/bin:$PATH

·             export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

·             cd $QTEDIR/tools/qvfb

·             tmake -o Makefile qvfb.pro

·             make

·             mv qvfb $QTEDIR/bin/

 

Build Qt/Embedded

If you are using the Qtopia Tools package then first

    export LD_LIBRARY_PATH=$QT2DIR/lib:$LD_LIBRARY_PATH

    cp $QT2DIR/bin/qvfb $QTEDIR/bin/

    cp $QT2DIR/bin/uic $QTEDIR/bin/

To build Qt/Embedded you must do the following:

    cd $QTEDIR

    export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++

    export QTDIR=$QTEDIR

    export PATH=$QTDIR/bin:$PATH

    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/  

    ./configure -system-jpeg -no-xft -qconfig qpe -keypad-mode -qvfb -depths 4,8,16,32 [extra options: see below]

make sub-src

(注:这两步很关键

第一步的意思是把qtopia的配置信息拷贝到QT/Embedded因为根据实际应用的不同,QT/Embedded需要的功能也不同,所以qconfig-qpe.h实际上对于QT/Embedded来说,是一份裁减列表,告诉什么要裁减,什么不要裁减,具体的详细信息见qconfig-qpe.h里面有详细的英文注释。

第二步的参数-qconfig qpe的意思Qt/Embedded根据qconfig-qpe.h来进行裁减配置,并最后编译)

我的qconfig-qpe.h的内容如下:(就一行)

 

#define QT_NO_PROPERTIES    

 

我的意思就是(除了‘属性’这个特征以外,其他所有功能全部都需要)

属性-à Qt提供了一套和一些编译器提供商也提供的属性系统类似的完善的属性系统。

http://www.qiliang.net/qt/properties.html 中有对属性这个特征的的详细说明

 

 

Build Qtopia
To build Qtopia phone you must do the following:

·             cd $QPEDIR

·             export QTDIR=$QTEDIR

·             export PATH=$QPEDIR/bin:$PATH

·             ./configure -edition phone -no-qtopiadesktop

·             make

·             make install

To make the PDA version you must do the following:

    cd $QPEDIR

    export QTDIR=$QTEDIR                                             1

    export PATH=$QPEDIR/bin:$PATH                              2

    ./configure -edition pda -no-qtopiadesktop                  3

    make                                                                      4

    make install                                                             5

(注:我们这里只编译PDA版本,在第3步的时候加上参数-prefix 路径名 , 到第5步的时候就会自动安装到那个路径下)

 

 

 

至此,整个qtopia2.1.1编译成功!

 

 

编译完毕,执行程序!

 

执行程序时的环境变量

QPEDIR=/home/snail/devel/qt/environment/qtopia(我编译qtopia的时候,指定安装路径就是/home/snail/devel/qt/environment/qtopia

QT2DIR=/home/snail/devel/qt/environment/qt-2.3.2

QTDIR=/home/snail/devel/qt/environment/qtopia

QTEDIR=/home/snail/devel/qt/environment/qt-2.3.10

QWS_DISPLAY=QVFb:0

 

 

执行程序

$QTEDIR/bin/qvfb -nocursor -width 800 -height 480 &

$QPEDIR/bin/qpe

 

最后效果图如下

 

 

 

 

 

 

 

 

 

Qt/嵌入式的虚拟帧缓

虚拟帧缓冲允面机器上开发Qt/嵌入式程序,而不用在命令台和X11间来回切

The virtual framebuffer is located in $QTDIR/tools/qvfb.

使用虚拟帧缓

1.       $QTDIR/src/tools/qconfig.h中的QT_NO_QWS_VFB被定的,编译Qt/Embedded

2.       qvfb普通的Qt/X11用程序来编译并不要Qt/嵌入式用程序来编译

3.       启动Qt/嵌入式主程序(比如,使用QApplication::GuiServer来构造一QApplication或者在命令行下使用-qws参数)。你将会需要指定所要使用虚拟帧缓驱动的服器,例如:

4.           widgets -qws -display QVFb:0

   

5.       也可以QWS_DISPLAYQVFb:0

(注:如果不设置QWS_DISPLAYQVFb:0,在启动的时候也没有加上-qwsdisplay :id,则可能出现找不到QVFB的错误)

qvfb支持下列命令行参数

  • -width width

虚拟帧缓冲的度(默240)。

  • -height height

虚拟帧缓冲的高度(默320)。

  • -depth depth

虚拟帧缓冲的色深(18或者32,默8)。

  • -nocursor

帧缓冲窗口不X11

  • -qwsdisplay :id

提供的Qt/嵌入式id(默0)。

(注:启动QVFB 时候后面加上&,这样QVFB就以后台程序运行,这样就可以在同一终端上继续运行qtopia程序~

 

虚拟帧缓设计

虚拟帧缓冲使用了共享存储区域(虚拟帧缓冲)拟帧缓且在一窗口中(qvfb)模个应来显帧缓冲。示的域被周期性的改和更新,所以你会看到帧缓冲的不连续的快照,而不是每一个单独绘画操作。因为这个原因的绘画问题,比如闪烁,知道程序在使用正的帧缓冲而行的候就不再出了。

(:当在QVFB中运行程序时如果出现闪烁或延迟不代表在嵌入式设备中也会出现同样情况)

刷新速度可以通View|Refresh Rate单项来设置。这将会倒置qvfb更加繁地检查要被刷新的域。速度仅仅是一。如果一小的绘画操作完成了,帧缓绘画事件之间显示任何更新。如果一个应用程序正在示一个动画,更新将会繁,用程序和qvfb将会争夺处理器时间

键盘事件通命名管道传递给Qt/嵌入式主程序理。

虚拟帧缓冲只是一个开发工具。在虚拟帧缓设计有考任何安全问题。在境中应该避免这个问题QT_NO_QWS_VFB应该是被定的。

(: 虚拟帧缓冲只是一个开发工具。它的目的仅仅是让你可以方便的调试程序,不用在开发环境上和设备之间来回调试,所以在你还没有运行它之前,不要把它想的很复杂)

 

 

:

http://www.qiliang.net/qt/emb-qvfb.html

 

 

原创粉丝点击