QtEmbedded在嵌入式linux下的开发环境建立与移植Qt

上传人:大米 文档编号:471028198 上传时间:2023-12-23 格式:DOC 页数:20 大小:59.50KB
返回 下载 相关 举报
QtEmbedded在嵌入式linux下的开发环境建立与移植Qt_第1页
第1页 / 共20页
QtEmbedded在嵌入式linux下的开发环境建立与移植Qt_第2页
第2页 / 共20页
QtEmbedded在嵌入式linux下的开发环境建立与移植Qt_第3页
第3页 / 共20页
QtEmbedded在嵌入式linux下的开发环境建立与移植Qt_第4页
第4页 / 共20页
QtEmbedded在嵌入式linux下的开发环境建立与移植Qt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《QtEmbedded在嵌入式linux下的开发环境建立与移植Qt》由会员分享,可在线阅读,更多相关《QtEmbedded在嵌入式linux下的开发环境建立与移植Qt(20页珍藏版)》请在金锄头文库上搜索。

1、. . . . Qt/Embedded在嵌入式linux下的开发环境建立与移植摘要:本文主要介绍了在嵌入式linux系统下QT/Embedded开发环境建立与移植。通过大量源代码与分析,建立起在linux主机和s3c2410下的Qt/开发环境,再对QT/E程序进行移植。关键词:Qt/Embedded;嵌入式;linux 引言Qt/Embedded是奇趣科技推出的基于Linux的嵌入式平台开发工具,是Qt的嵌入式版本。它继承了Qt的全部标准API,提供了比Xlib和XWindows系统更加紧凑的窗口生成系统,对FrameBuffer直接进行操作(见图1)。完全模块化的设计和高效的编译系统减少了存

2、的消耗,这些使Qt/Embedded成为嵌入式环境中,功能强大而全面的GUI开发工具。由于KDE等项目均使用Qt作为支持库,所以许多基于Qt的X Windows程序可以非常方便地移植到Qt/Embedded版本上。Qt/Embedded具有面向对象、跨平台和界面设计方便美观等优点,已得到了广泛的应用。本文主要通过大量的源代码,建立起linux主机和s3c2410下的QT/Embedded开发环境,并指出其移植方法。1前期准备本文所用到的宿主机操作系统为RED HAT 9.0,目标平台为三星公司的S3c2410。需要准备的软件包如下:1)jpegsrc.v6b.tar.gz 安装libjpeg库

3、,因为配置Qt/E支持jpeg时需要jpeglib.h、 libjpeg.a、libjpeg.so这三个文件;2)e2fsprogs.1.35.tar.gz -安装libuuid库,因为交叉编译时需要用到此库;3)qt-embedded-free-3.3.5.tar.gz -编写嵌入式图形界面所需的软件包;4)qt-x11-3.3.4.tar.gz -编写嵌入式图形界面所需的软件包。2Qt/E开发环境的建立21 Jpeg6b的安装与配置Jpeg6b的安装和配置比较简单,过程如下:#cd /usr/src#tar xzvf jpegsrc.v6b.tar.gz /解压#cd jpeg-6b#./

4、configure enable-shared enable-static/配置,既生成静态又生成共享库文件#make#cd /usr/local#mkdir man /注意建立man和man1文件夹#cd man #mkdir man1#cd /usr/src/jpeg-6b#make install /编译并安装完成后会在/usr/include目录下生成jpeglib.h,在/usr/local/lib目录下会生成libjpeg.a和libjpeg.so两个库文件,如果没有则说明安装不成功。22安装并交叉编译arm的libuuid库#cd /usr/src#tar xvzf e2fspr

5、ogs-1.35.tar.gz /解压#cd e2fsprogs-1.35#./configure -host=arm-linux -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -prefix=/usr/local/arm/2.95.3/arm-linux/配置生成基于ARM平台的libuuid库文件#make install /编译并安装#cd lib#cp dR libuuid.* /usr/local/arm/2.95.3/arm-linux/lib/将生成的库文件拷到ARM交叉编译工具链所在的li

6、b目录。将交叉编译后生成的libuuid库拷到arm的交叉编译工具链目录中时应注意检查生成的libuuid.so、libuuid.so.1、libuuid.so.1.2是不是arm交叉编译完成的(file libuudi.so.1.2 如果显示为:ELF 32-bit LSB Sshared,ARM,Version1(ARM),not stripped则表示正确)。23安装Qt/X11#cd /usr/local#tar xvfz qt-x11-free-3.3.4.tar.gz#mv qt-x11-free-3.3.4 qtx#cd qtx#export QTDIR=$PWD /设置环境变量

7、,在编译的时候要用到#export PATH=$QTDIR/bin:$PATH#export LD_LIBRARY_PATH =$QTDIR/lib#./configure -depths 4,8,16 -no-ipv6 -no-cups -no-pch qvfb -depths 4,8,16,32 /配置,可以通过./configure -help来获得帮助信息#make /编译#make install24 安装Qt/Embedded编译并安装Qt/Embedded主要是为了生成基于ARM核的Qt/E库文件,将这些库文件移植到ARM平台中就可以运行通过QT开发出来的GUI程序了,下面列出其

8、安装步骤:#cd /usr/local#tar xvzf qt-embedded-free-3.3.5.tar.gz#mv qt-embedded-free-3.3.5qte#cd qte#export QTDIR=$PWD /设置环境变量#export PATH=$QTDIR/bin:$PATH#export LD_LIBRARY_PATH =$QTDIR/lib:$LD_LIBRARY_PATH接着拷贝jpeg库头文件到Qt/E的include中,因为在编译的时候要用到:#cp /usr/include/jpeglib.h $QTDIR/include/#cp /usr/include/j

9、config.h $QTDIR/include/#cp /usr/include/jerror.h $QTDIR/include/#cp /usr/include/jmorecfg.h $QTDIR/include/#cp /usr/local/qtx/bin/uic $QTDIR/bin/#./configure -shared -embedded arm -qt-gif -no-exceptions -thread -no-nis -no-cups -no-stl -qt-imgfmt-mng -qt-imgfmt-png -qt-imgfmt-jpeg -qt-sql-sqlite -q

10、vfb -depths 4,8,16,32#make /编译,最终生成基于ARM平台的Qt/E库文件:libqte-mt.so、libqte-mt.so.3、libqte-mt.so.3.3、libqte-mt.so.3.3.5到此,整个Qt/Embedded的开发环境全部建立起来了。3.Qt/Embedded在硬件平台上的移植Qt/E移植主要是将交叉编译Qt/E时生成的库文件移植到目标板的文件系统中:#cd /home/root /root为我们存放文件系统的目录#mkdir qt#cd qt#mkdir lib#mkdir bin#cp -dR $QTEDIR/lib/libqte-mt.

11、* ./ /将编译Qt/E生成的库文件拷到lib目录中,在这里主要是用到lib中的4个文件:libqte-mt.so、libqte-mt.so.3、libqte-mt.so.3.3、libqte-mt.so.3.3.5最后我们通过NFS将生成的文件系统加载到硬件目标平台上。4开发流程整个开发环境建立起来后,开发流程如下:1)先在宿主机调用QTX下的designer工具,建立工程文件,编写程序并调试(例如建立hello.pro)2)确认程序无误后,调用QTE下的qmake对工程文件进行交叉编译/usr/local/qte/bin/qmake hello.pro;make;3)把交叉编译生成的二进

12、制执行文件放到目标板的文件系统中cp hello /home/root/qt/bin4)在目标板上运行#export QTDIR=/qt#export PATH=$QTDIR/bin:$PATH#export LD_LIBRARY_PATH =$QTDIR/lib:$LD_LIBRARY_PATHHello qws5总结本文主要讲述了Qt/Embedded开发环境的建立和移植,本文主要介绍了在嵌入式linux系统下QT/Embedded开发环境建立与移植。通过大量源代码与分析,建立起在linux主机和s3c2410下的Qt/E开发环境,再对Qt/E程序进行移植,文章最后还指出QT程序的开发流程

13、。参考文献1Blanchette J.C+GU I Programming wit h Qt 3Z.TrolltechAS.2004.2Trolltech.Qt Reference documentation version 31314Z.2004.3泽建,嵌入式水文信息采集智能终端的研究与设计,工业大学学位论文M.2003摘 要:QT是一个用于多种平台图形界面程序开发的C+工具包。同时QT还包含了一些工具使得编写程序变得又快又直接。QT的跨平台能力和国际化支持保证了QT应用程序占有尽可能广阔的市场。Qt/Embedded是面向嵌入式系统的QT版本。主要讲述Qt/Embedded库中基于ARM

14、的嵌入式Linux系统下的移植,同时使用一个简单的应用程序来说明Qt/Embedded应用程序的开发流程。关键词:QT;Qt/Embedded;交叉编译;ARM QT是Trolltech公司开发的一个多平台的C+图形用户界面应用程序框架。Qt采用了完全面向对象组件编程技术,支持多平台。Qt提供图形用户界面在嵌入式系统上开发的一系列开发工具包。该图形系统最大的优点是采用面向对象设计,移植性好,基于X Window的Qt桌面应用程序可以非常方便的移植到嵌入式系统上。 Qt/Embedded是在嵌入式环境下所使用的Qt。目前市面上所有上市的Linux PDA都是采用Qt/Embedded作为图形接口

15、的函数库。Qt/Embedded的特性是可以直接在Framebuffer上显示图形接口,反应的速度更快,这对硬件和容量都有限制的嵌入式环境非常重要。 主要介绍QT在基于ARM的嵌入式Linux系统下的移植与应用。1 Qt/Embedded开发环境介绍 Qt/Embedded应用程序的开发可以在安装了一个跨平台开发工具链的不同的平台上编译。系统采用的是在Linux平台下开发,在Linux平台下以虚拟缓冲帧的方式来运行,其实是有一个X11的应用程序虚拟了一个缓冲帧。通过指定显示设备的宽度、高度和颜色深度,虚拟出来的缓冲帧将和物理的显示设备在每个像素上保持一致。这样每次调试应用时开发人员就不用总是刷新嵌入式设备的FLASH 存储空间,从而加速了应用的编译、和运行周期。 运行Qt 的虚拟缓冲帧工具的方法是:在Linux 的图形模式下运行命令:qvfb(回车) 当Qt 嵌入式的应用程序要把显示结果输出到虚拟缓冲帧时,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号