查看: 2510|回复: 3

[资料] 飞凌嵌入式教你在Linux中移植QT QTOPIA

[复制链接]
  • TA的每日心情

    2014-4-10 13:56
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-1-24 08:42:08 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 forlinx2013 于 2014-1-24 09:10 编辑

    欢迎大家来到飞凌爱板网专区,对嵌入式技术感兴趣的朋友不妨多多关注一下,我们提供了公司所有开发板的所有资料,也会更新大量技术文章,欢迎大家一块学习提高!!!


    Linux中移植QT QTOPIA
    Qtopia 是Trolltech 公司为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。
    QT是目前在linux上使用较广的一个图形系统。用户经常配合KDE桌面环境来使用。需要注意的是我们看到的并操作的是KDE,而不是QT。QT只是一套库函数(类库),KDE才是可执行程序.同时KDE为了其他程序方便的对其操作,也提供一套库函数(类库)。
    在PC机上的QT是基于X11图形系统的,在嵌入设备中往往不需要这么累赘,只需使用QTE(QT Embedded)即可包括PC平台中X11和QT库的功能。
    另一方面,嵌入设备受许多条件的限制,桌面系统也不能直接使用PC机上已有的系统。QTOPIA就是相当于KDE的桌面系统.根据具体嵌入设备的需要可以配置成phone和pocket pc两种。
    1、准备工作
    (1) 目标
    首先要明确将要干的是什么,将怎么做。
    我们的目标很明确??就是在自己的开发板上使用基于QTE的桌面系统QTOPIA。
    我们的工作往往是先在PC完成以后移植到ARM平台上;先编译好QTE的库,再编译QTOPIA。因为这个系统和具体的设备有关(例如:触摸屏、时钟、电源管理设备等),所以最后还需要做设备接口的移植工作。
       
    (2)软件包
    系统平台:RedHat Array(完全安装)
    1. qt-embedded-2.3.7.tar.gz qte的库)
    2. qt-x11-2.3.2.tar.gz (为了生成相应的qtdesignerqvfb
    3. qtopia-free-1.7.0.tar.gz qte的桌面环境程序)
    4. tmake-1.11.tar.gz (编译时会用到)
    5. e2fsprogs-1.35.tar.gz (只使用其中的uuid的库)
    当下载完这些包以后我们先建立一个工作环境。假设所有软件包都下载在用户目录下,通常都是/root。
    (3)环境的建立
    1. # cd ~  
    2. # mkdir x86-qtopia  
    3. # tar zxvf qt-x11-2.3.2.tar.gz  
    4. # mv qt-2.3.2 qt-x11  
    5. # cd x86-qtopia  
    6. # tar zxvf ../tmake-1.11.tar.gz  
    7. # tar zxvf ../qt-embedded-2.3.7.tar.gz  
    8. # tar zxvf ../qtopia-free-1.7.0.tar.gz  
    9. # tar zxvf ../e2fsprogs-1.35.tar.gz  
    10. # mv tmake-1.11 tmake  
    11. # mv qt-2.3.7/ qt  
    12. # mv qtopia-free-1.7.0 qtopia  
    13. # mv e2fsprogs-1.35 e2fsprogs  
    14. # cp x86-qtopia arm-qtopia -rf
    记住,用户目录下的x86-qtopia目录是PC机上编译的工作环境,arm-qtopia是arm平台的交叉编译工作环境,qt-x11是两者公用的。
    接下来还必须编译qt-x11,主要是为了编译生成其中的qtdesigner和qvfb。qvfb程序在系统中并未安装,需要我们自己编译。qtdesigner是和qt库的版本是相关的,当我们使用PC机上和QTE版本不符的qtdesigner时,可能在PC机上的qt-x11能使用的控件在QTE上并未实现,导致应用程序编译不成功。所以,我们使用2.3版本的QTE时,必须使用相同版本的qt-x11编译生成的qtdesigner和qvfb。
    1. # cd ~/qt-x11  
    2. # export QTDIR=PWD  
    3. # echo yes | ./configure -static -no-xft -no-opengl -no-sm  
    4. # make -C src/moc  
    5. # cp src/moc/moc bin  
    6. # make -C src  
    7. # make -C tools/designer  
    8. # make -C tools/qvfb  
    9. # cp tools/qvfb/qvfb bin  
    10. # strip bin/uic bin/moc bin/designer bin/qvfb  
    11. # cp qt-x11/bin/* qt/bin -f  
    12. # cp qt-x11/bin/* qt/bin -f
    2、PC平台编译
    编译之前做一下准备工作:打开一个控制台之后设置环境变量。
    1. # cd ~/x86-qtopia  
    2. # export QTDIR=PWD/qt  
    3. # export QPEDIR=PWD/qtopia  
    4. # export TMAKEDIR=PWD/tmake  
    5. # export TMAKEPATH=TMAKEDIR/lib/qws/linux-generic-g++  
    6. # export PATH=QTDIR/bin:QPEDIR/bin:TMAKEDIR/bin:PATH
    (1)编译QTE
    1. # cd QTDIR  
    2. # cp QPEDIR/src/qt/qconfig-qpe.h src/tools/ -f  
    3. # (echo yes ; echo no) | ./configure -platform linux-generic-g++  -qconfig qpe -depths 16,24,32  
    4. # make -C src clean  
    5. # make -C src
    看一下QTDIR目录下是否已经有了qt的库了?
    (2)编译QTOPIA
    1. # cd QPEDIR/src  
    2. # ./configure  
    3. # make clean  
    4. # make
    (3)测试QTOPIA
    激动的时刻来了,如果这个步骤成功将意味着可以做应用开发了。
    1. # cd ~/x86-qtopia  
    2. # mkdir dist  
    3. # cd dist  
    4. # cp -af ../qt/lib/ .  
    5. # cp -af ../qtopia/apps .  
    6. # cp -af ../qtopia/bin .  
    7. # cp -af ../qtopia/plugins .  
    8. # cp -af ../qtopia/i18n .  
    9. # cp -af ../qtopia/pics .
    因为Security.png有点错误,所以必须进行一下操作:
    1. # cd pics  
    2. # pngtopnm Security.png>a.pnm  
    3. # pnmtopng a.pnm>Security.png
    因为qpe运行的时候,当前目录必须是$QTDIR/bin,所以不能在$QTDIR目录下执行bin/qpe来运行。
    1. # export QTDIR=~/x86-qtopia/qt  
    2. # cd QTDIR/bin  
    3. # ./qvfb &  
    4. # ./qpe &
    看到qpe在qvfb中的界面了吗?我看到了~!


    回复

    使用道具 举报

  • TA的每日心情

    2014-4-10 13:56
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-2-11 17:06:08 | 显示全部楼层
    好评在哪里?                           
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-4-18 14:11
  • 签到天数: 75 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-3-4 08:44:45 | 显示全部楼层
    刚写完几个简单的驱动,准备把QT也学一学的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-4-10 13:56
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2014-3-4 11:24:27 | 显示全部楼层
    __Linux__ 发表于 2014-3-4 08:44
    刚写完几个简单的驱动,准备把QT也学一学的

                                    
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 06:11 , Processed in 0.130543 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.