毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc

上传人:来看看 文档编号:3283163 上传时间:2019-08-08 格式:DOC 页数:40 大小:1.79MB
返回 下载 相关 举报
毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc_第1页
第1页 / 共40页
毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc_第2页
第2页 / 共40页
毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc_第3页
第3页 / 共40页
毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc_第4页
第4页 / 共40页
毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于Linux嵌入式开发板的Qt的移植与应用.doc(40页珍藏版)》请在三一文库上搜索。

1、题目:基于Linux嵌入式开发板的Qt的移植与应用摘 要嵌入式 Linux是以Linux为基础的嵌入式操作系统,Linux有着开放源代码,内核小、效率高,免费的OS等优点。它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。Qt是诺基亚开发的一个跨平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础。基本上,Qt

2、同X Window上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL 是同类型的东西,但Qt具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档等优点。在嵌入式平台上开发用户图形界面,选择Qt是一个很好的选择。本设计采用基于ARM9EJ-S构架的AT91SAM9261芯片的嵌入式开发套件,并详细介绍了套件的硬件和Linux嵌入式操作系统。本文给出了tslib 、Qt-Extended-4.4.3、Qt-Embedded-4.7.0在Linux嵌入式开发板上的移植方法。介绍了Qt Creator的使用方法和Qt应用程序在开发板上的使用

3、方法。【关键词】Qt Qt-Extended-4.4.3 Qt-Embedded-4.7.0 tslibAbstractEmbedded Linux is a embedded operating system based on Linux. Linux has many features, for example, open source, the kernel is small, efficient, free OS and so on. It is widely used in mobile phones, personal digital assistant (PDA), media

4、players, consumer electronics and aerospace fields.Qt is a cross-platform development of C+ graphical user interface application framework which is developed by Nokia. It provides all the required functions to the application developers to build-the-art graphical user interface. Qt is fully object o

5、riented, easily extensible, and allows true component programming manner. Since early 1996, Qt into the business world, it has become a worldwide success of thousands of applications that base. Qt is also the popular Linux desktop environment KDE foundation. Basically, Qt is the same with Motif, Ope

6、nwin, GTK graphical interface libraries on X Window and MFC, OWL, VCL, ATL on Windows platform, but Qt has many advantages, for example: excellent cross-platform, object-oriented, rich API, a large number of development documents and soon. To develop graphical user interface on embedded platform, se

7、lect the Qt is a good choice. The design framework based on the AT91SAM9261 ARM9EJ-S Development Kit for embedded chips, and details of the package of hardware and embedded Linux operating system. This paper explains the transplantation of tslib, Qt-Extended-4.4.3, Qt-Embedded-4.7.0 in the Linux emb

8、edded development board. Introduces the use of Qt Creator and the method to run Qt applications on the development board.【Key words】Qt; Qt-Extended-4.4.3; Qt-Embedded-4.7.0; tslib目 录1 绪论21.1 基于ARM的Linux的嵌入式系统平台概述21.1.1 嵌入式硬件环境21.1.2 嵌入式操作系统21.2 本文的意义21.3 本文所做的工作22 Qt-Extended-4.4.3的移植22.1 准备资源22.2 搭

9、建移植环境22.2.1在windows下安装ssh软件22.2.2安装虚拟机vmware和Ubuntu系统22.2.3开通Ubuntu下的nfs和ssh服务22.2.4安装交叉编译工具22.3 安装tslib22.3.1安装编译工具和库文件22.3.2 配置,编译,安装tslib22.4 配置,编译,安装Qt-Extended-4.4.322.4.1配置Qt-Extended-4.4.322.4.2编译Qt-Extended-4.4.322.4.3安装Qt-Extended-4.4.322.5 移植Qt-Extended-4.4.322.5.1 移植tslib22.5.2 移植Qt-Exten

10、ded-4.4.322.5.3 设置环境变量22.5.4上传时域文件22.5.5 运行Qt-Extended-4.4.323 Qt-Embedded-4.7.0的移植23.1 准备资源23.2 配置Qt-Embedded-4.7.023.3 编译Qt-Embedded-4.7.023.4 安装Qt-Embedded-4.7.023.5 移植Qt-Embedded-4.7.023.5.1 移植tslib23.5.2 移植Qt-Embedded-4.7.024 Qt Creator的使用方法24.1 Windows下Qt Creator开发环境的建立24.2 一个login实例24.2.1启动Qt

11、 Creator24.2.2 新建一个工程24.2.3 设计widget.ui24.2.4 新建一个dialog24.2.5 添加一个类24.2.6 编写代码24.2.7运行程序25 测试移植效果25.1 测试Qt Embedded的移植效果25.1.1交叉编译和运行方法25.1.2中文显示25.2 测试Qt Extended的移植效果25.2.1 添加源代码25.2.2 为应用程序添加图标25.2.3 将Qt4程序转换成qt-extended-4.4.3程序25.2.4 添加对login应用程序的支持25.2.5 在qt-extended-4.4.3下编译login25.2.6 运行logi

12、n应用程序25.2.7 中文显示26总结与展望26.1总结26.2展望2参考文献2攻读学位期间公开发表的论文2致 谢21 绪论随着信息技术的发展和数字化产品的普及,嵌入式设备被广泛应用。主流的嵌入式操作系统有WinCE,Linux,VxWorks, pSOS, PalmOS等等。Linux的优势在于其完全开放的操作系统,可以给开发者一定的独立性和自由度,允许它们自己掌控自己的产品。另外,是否具有良好的人机图形界面,方便用户操作,是衡量嵌入式设备性能的重要标准。Qt/Embedded是著名的Qt库开发商Trolltech公司开发的基于嵌入式Linux系统的Qt版本,广泛应用的KDE等项目即使用Q

13、t作为支持库,它以良好的代码结构、强大的可定制功能以及统一的API都给用户提供了极高的便利性,QT/Embedded已经逐渐成为GUI的事实标准。QT/E 是跨平台的C+图形用户界面(GUI)工具包,它是著名的Qt开发商TrollTech发布的面向嵌入式系统的Qt 版本,Qt 是目前KDE等项目使用的GUI 支持库,许多基于Qt的XWindow程序可以非常方便地移植到嵌入式Qt/Embedded 版本上。自从Qt/Embedded发布以来,就有许多嵌入式Linux 开发商利用Qt/Embedded 进行嵌入式GUI 应用开发。TrollTech 公司所发布的面向嵌入式系统的QT/E 版本只提供

14、源代码,用户必须针对自己的嵌入式硬件平台进行裁剪、编译和移植。在嵌入式开发的过程中一个非常重要的内容就是移植。本论文提到的Qt的移植包括了对源代码的裁剪、编译和移植。1.1 基于ARM的Linux的嵌入式系统平台概述说明一下移植过程中用到的Windows XP系统和Ubuntu系统的主要参数Windows XP系统:CPU:Pentium双核,1.80GHz,内存:1GB。Ubuntu系统:版本:ubuntu-10.10,内存:512M,单核。以下主要对嵌入式系统的硬件环境和操作系统做简单介绍。1.1.1 嵌入式硬件环境本设计所用到的硬件环境是杭州迈冲科技有限公司开发的MC9261-EK开发板

15、。它采用ATMEL AT91SAM9261(S)处理器,最新ARM926EJ-S ARM内核,它扩展了DSP指令集和Jazelle Java 加速器,主频190MHz 时性能高达210 MIPS。MC9261-EK开发板外围设备齐全,软件资源丰富,支持Linux-2.6和WinCE5.0操作系统,Linux可配备QT或MiniGUI图形界面,适合信息通信、数据采集、仪器仪表、智能交通、医疗设备、数控终端、工业控制等场合,性价比极高1。开发板硬件规格如表1-1所示:表1-1 开发板硬件规格系统资源CPUATMEL AT91SAM9261(S),200MHz存储64256MB NandFlash,

16、28MB DataFlash内存64MB SDRAM实时时钟带后备电池RTC通信接口网口1路10M/100M自适应网,带网络变压器和指示灯串口4路RS232串口,1路调试串口,3路数据通信串口CAN预留SPI接口,可扩展CAN接口,支持CAN2.0A/B音频1路音频输出LCD支持3.5-14.1寸TFT-LCD,触摸屏功能USB2路USB 2.0 Host接口,1路USB 2.0 Device接口GPIOGPIO若干,矩阵键盘存储设备IDE/CF/SD支持SD卡存储,预留IDE接口,可扩展IDE/CF接口,连接硬盘或CF卡工作参数工作电源630V DC-IN工作温度-20+70(可选配全工业级

17、温宽元器件)工作湿度5%95%尺寸规格146mmX102mm以下是核心板资源l 工业级ATMEL AT91SAM9261处理器,200MHzl 64MB SDRAMl 128MB NandFlashl 2MB DataFlashl 6层高精密工业PCBl 尺寸:73mm X 50.5mml 2条2x30 PIN插件,方便简单l 电源:3.3V供电,超低功耗1.1.2 嵌入式操作系统本设计基于Linux嵌入式操作系统,该系统使用Linux-2.6.30作为内核,使用U-boot作为Bootloader2,使用jffs2作为文件系统。Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成

18、,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torv-alds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。Bootloader是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件

19、设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。U-Boot,全称是Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS嵌入式操作

20、系统。U-boot目前主要支持的目标操作系统是OpenBSD,NetBSD,FreeBS-D,4.4BSD,Linux,SVR4,Esix,Solaris,Irix,SCO,Dell,NCR,VxW-orks,LynxOS,pSOS,QNX,RTEMS,ARTOS。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。U-boot是一种普遍用于嵌入式系统中的Bootlo

21、ader。文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。JFFS2是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用。JFFS2的

22、全名为Journalling Flash File System Version 2(闪存日志型文件系统第2版),其功能就是管理在MTD设备上实现的日志型文件系统。1.2 本文的意义Qt同XWindow上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西,但是Qt具有下列优点:优良的跨平台特性、面向对象、丰富的API、支持2D/3D图形渲染,支持O-penGL、大量的开发文档、支持XML、集成Webkit引擎。在嵌入式平台上开发用户图形界面,选择Qt是一个很好的选择。但是在未移植Qt的嵌入式系统平台上并不能运行Qt的应用程序,本

23、文的意义就是移植Qt到嵌入式系统平台上,使得Qt的应用程序能在嵌入式系统平台上运行。1.3 本文所做的工作本设计的最终目的是为了将Qt-Extended-4.4.3和Qt-Embedded-4.7.0移植到AT91SAM9261嵌入式开发板上,主要做了以下工作:(1) 准备资源和搭建移植环境(2) 移植tslib库,使移植后的Qt界面支持触摸屏(3) 移植Qt-Extended-4.4.3(4) 移植Qt-Embedded-4.7.0(5) 对移植后的Qt进行测试2 Qt-Extended-4.4.3的移植Qt Extended(2008年9月30日前称Qtopia)是一个软件平台,主要用于采

24、用嵌入式Linux系统的(embedded Linux-based system)的电子手机和移动电话。从4.4版本开始,Qtopia改名为Qt Extended,qt-embedded-4.4.x相当于qtopia-core,qt-extended相当于桌面。2009年3月3日,Qt Software宣布将停止开发作为独立产品的Qt Extended。取而代之的是:Qt Extended 中的一些功能将被转入Qt框架,从而使Qt成为更加丰富的跨平台应用程序框架。Qt Extended的最后一个版本是4.4.3。Qtopia是基于QT/Embedded开发的一个嵌入式的窗口系统和应用程序集,广

25、泛用于PDA等掌上设备。Qtopia平台由Qtopia 库和Qtopia server/laucher组成。Qtopia server/laucher是控制窗口系统、进程间通信、发起所有应用和其他核心任务的主要服务程序3。Qt-Extended-4.4.3的移植从搭建环境开始进行说明,直到成功移植。移植流程图如图2-1所示:开始移植tslib和Qt-Extended-4.4.3Qt Creator开发应用程序配置编译安装Qt-Extended-4.4.3配置编译安装tslib测试移植效果搭建移植环境结束准备移植资源图2-1 Qt-Extended-4.4.3移植流程图2.1 准备资源到以下四个

26、网站分别下载qt-extended-opensource-src-4.4.3.tar.gz源码包,该包中含有Qt-Extended桌面系统和Qt的一些底层文件,tslib-1.4.tar.gz触摸屏源码包,arm-2007q1-10-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2交叉编译工具,用于Windows XP和Ubuntu之间传文件的软件ssh。(1)http:/ http:/ 搭建移植环境虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台

27、物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。虚拟系统一样会崩溃,但是,崩溃的只是虚拟机上的操作系统,而不是物理计算机上的操作系统,并且,使用虚拟机的“Undo”(恢复)功能,可以马上恢复虚拟机到安装软件之前的状态。Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月

28、会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。为了搭建移植环境,需要在Window XP下安装ssh软件和虚拟机,然后在虚拟机上安装Ubuntu系统4。装完系统后,需要开通ssh服务和nfs服务,还要安装嵌入式平台AT91SAM9261用到的,并且整个移植过程中都需要用到的交叉编译器arm-none-linux-gnueabi。2.2.1在windows下安装ssh软件SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working

29、Group)所制定;SSH为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器

30、和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。 通过使用SSH,可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。在本设计中主要用来在Windows XP和Ubuntu两个系统之间相互传输文件。SSH的安装方法很简单,双击软件包即可安装,点击next直到finish。2.2.2安装虚拟机vmware和Ubuntu系统由于安装步骤很简单,这里省略其

31、安装过程,只把其中遇到的问题说明一下。安装vmware的过程中出现错误:Failed to create the requested regis-try key error: 1021,解决方法是:windows下,开始-cmd-运行-regedit,把HKEY_LOCAL_MACHINESOFTWAREVMware,Inc. 连同主键一起删除就好了。Ubuntu系统安装好以后,整个系统用起来不太方便,需要优化几个常用的功能。以下把遇到的几个问题说明一下:在终端里面显示的是绝对路径,当进入了几层目录后,显示的路径会很长,操作起来不太方面,通过以下设置可以只显示相对路径,首先切换到root用户,

32、使用命令,su或者su root,然后根据提示输入root用户的密码即可。在root用户下修改.bashrc文件,打开.bashrc文件的方法为:vi /.bashrc这条命令中,符号的意思是到当前用户的根目录下。将.bashrc文件中PS1开头的几行中的小写的w改成大写的W。比如其中的:PS1=$debian_chroot:+($debian_chroot)uh:w$ 需将其改成:PS1=$debian_chroot:+($debian_chroot)uh:W$ 还有一个问题就是在使用vi命令打开文档并编辑的时候,使用方向键时会出现乱码,可以通过安装vim文本编辑器来解决这个问题:apt-g

33、et install vim解释一下这个安装命令:apt(Advanced Packaging Tool的缩写,是一款强大的包管理工具)是Debian安装软件的包管理工具命令;此命令会从/etc/apt/sources.list这个资源列表下去搜索vim这个软件;install是apt-get的参数,是安装软件的意思。2.2.3开通Ubuntu下的nfs和ssh服务Network File System的简写。NFS是由Sun公司发展,并於1984年推出,NFS是一个RPC service,它使我们能够达到档案的共享,它的设计是为了在不同的系统间使用,所以它的通讯协议设计与主机及作业系统无关。

34、当使用者想用远端档案时只要用mount就可把remote档案系统挂接在自己的档案系统之下,使得远端的档案使用上和local机器的档案没两样。在嵌入式Linux开发的时候,常常需要使用nfs服务以方便程序的调试和系统的开发。使用nfs,用户可以将主机中的文件挂载到开发板上直接使用,而不用每次改动之后都下载到板子上,这样能够大大加快程序的调试和项目的进展。Ubuntu下安装nfs服务的步骤5如下:(1)安装nfs服务器端和客户端安装nfs服务器端和客户端可以使用如下命令:sudo apt-get install nfs-kernel-server nfs-common portmap 其中sudo

35、是普通用户行使超级用户的权限的意思,如果已经是在root用户即超级用户,可不使用sudo。(2) 配置挂载目录和权限nfs服务器端和客户端安装完成之后,还需要配置挂载目录和访问权限。也就是在/etc/exports文件的最后加入以下内容:/nfsboot *(rw,sync)解释一下这些内容的含义,/nfsboot是nfs服务器的共享目录,*表示任何 IP 都可以共享这个目录,也可以改为受限的IP,rw表示的对/nfsboot共享目录具有读写权限,sync 表示对/nfsboot共享目录的读写是同步更新的。(3) 测试是否安装成功测试方法为:将本地的一个目录挂载到/mnt目录下,然后使用命令查

36、看是否能成功挂载,有时挂载不成功,可重新启动nfs服务再挂。使用如下命令重新启动nfs服务,/etc/init.d/nfs-kernel-server restart,使用如下命令可将本地目录/nfsboot挂载到/mnt目录下:mount 192.168.1.22:/nfsboot /mnt其中的IP地址192.168.1.22为Ubuntu系统的IP地址,使用df命令或者mount命令都可以查看是否挂载成功。在/mnt目录之外,使用命令:umount /mnt可以解挂。(4) 安装ssh服务SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。SSH安装方法为:apt-get

37、 install openssh-server安装完成之后需要确认ssh服务是不是已经正常工作,可以使用如下命令进行确认:netstat tlp输入命令后,如果看到了ssh,说明正常工作了,如果没有看到ssh,可以重新启动ssh服务,再用命令:netstat tlp进行确认,重新启动ssh服务可以使用如下命令:/etc/init.d/ssh restartssh在本设计中主要是用来在Windows XP系统和Ubuntu系统之间传输文件,这个软件的使用方法很简单,本文不作说明。如果在Windows XP系统下使用ssh软件时,出现不能登录到Ubuntu系统的现象,这时需要检查Ubuntu系统的

38、IP地址,DNS是否设置正确,还需要关闭Ubuntu系统的防火墙,关闭方法为:ufw disable2.2.4安装交叉编译工具代码经过编译以后都要变成CPU可以识别的机器语言,而几乎一千种CPU说着一千种语言。由于宿主机与目标机的CPU一般不相同,宿主机也就是我们常用的PC机是以X86为核心的,而目标板则是ARM体系结构的,因此需要在宿主机机上建立一个用于目标机的交叉编译环境,也就是将各种二进制工具程序集成为工具链,其中包括如GNU的链接器(ld)、GNU的汇编器(as)、ar(产生修改和解开一个存档文件)、C编译器(gcc)以及C链接库(glibc)等等。在一种计算机环境中运行的编译程序,能

39、编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。以下是交叉编译器的安装方法:将交叉编译工具源码包通过ssh上传到Ubuntu,然后通过如下命令进行解压:tar jxvf arm-2007q1-10-arm-none-linux-gnueabi-i686-pc-linux-gnu.t

40、ar.bz2 C /opt/该解压命令中,-C /opt/参数,表示解压到/opt/目录下。解压之后,我们需要用到的交叉编译器arm-none-linux-gnueabi-gcc就在/opt/arm-2007q1/bin目录下。为了可以直接输入交叉编译器的名称就可使用它,需要在.bashrc文件的最后添加如下内容:export PATH=$PATH:/opt/arm-2007q1/bin使用如下命令打开.bashrc文件:vi /.bashrc为了使PATH变量生效,可以重新打开一个终端或者使用如下命令:source /.bashrc2.3 安装tslibtslib 是一个用于触摸屏设备的函数

41、库。通过这样一个函数库,可以将编程者从繁琐的数据处理中解脱出来。为什么会出现这样的情况呢?因为触摸屏的坐标和液晶显示屏之间的坐标并不是一一对应的,所以,要让从触摸屏上得到的坐标正确转换为液晶显示屏上的坐标,需要经过一个转换过程。除此之外,tslib还以插件的形式提供了一些附加的功能,比如去除点击触摸屏时的抖动等。Tslib的安装步骤为,配置,编译,安装。2.3.1安装编译工具和库文件将tslib源码包通过ssh软件上传到Ubuntu系统下,然后通过如下命令解压出来:tar zxvf tslib-1.4.tar.gz 在安装之前还需要安装一些编译时需要用到的文件,可以通过以下命令来安装这些工具:

42、apt-get install automakeapt-get install libtool其中automake用于自动生成Makefile。libtool主要的一个作用是在编译大型软件的过程中解决了库的依赖问题;将繁重的库依赖关系的维护工作承担下来,从而释放了程序员的人力资源。2.3.2 配置,编译,安装tslib进入tslib源码包解压后所在的目录,使用./autogen.sh命令产生configure文件,然后利用configure文件配置tslib,配置tslib使用如下命令:./configure -prefix=/usr/local/tslib/ -host=arm-none-l

43、inux-gnueabi-prefix参数是预设一个安装目录,-host参数是为编译时指定一个编译器。配置完成后,就可以编译了。直接使用make命令,即可编译。编译一段时间之后出现错误,提示找不到rpl_malloc,在当前目录查找了rpl_malloc,发现configure里有#define malloc rpl_malloc一行。从configure 脚本相关代码知是ac_cv_func_malloc_0_nonnull引起的,可以不让它检查了,产生一个cache文件arm-linux.cache,欺骗configure。echo ac_cv_func_malloc_0_nonnull=

44、yes arm-linux.cache,通过以上命令产生一个cache文件,echo是输出的意思,把双引号里面的内容输入arm-linux.cache,然后再重新配置一下,配置命令:./configure -prefix=/usr/local/tslib/ -host=arm-none-linux-gnueabi -cache-file=arm-linux.cache然后编译安装即可,安装使用命令:make install2.4 配置,编译,安装Qt-Extended-4.4.3为了得到移植需要用到的文件,需要对Qt-Extended-4.4.3源码文件进行配置,编译,安装,我们通过配置得到P

45、C版本的Qt-Extended-4.4.3,也可以得到ARM版本的,这里我们配置成ARM版本的。2.4.1配置Qt-Extended-4.4.3配置Qt-Extended-4.4.3需要注意的一个问题是,不能在Qt-Extended-4.4.3的源码目录下配置,需要在源码目录之外的目录下配置。本设计中把源码包放在了/home/share/qtopia4/目录下,然后在这个目录下新建了一个配置目录build,新建配置目录build使用了命令:mkdir build配置之前,先设置一下整个移植过程中需要用到的交叉编译器,使用vi或者vim命令打开源码目录下的如下文件:qtopiacore/qt/m

46、kspecs/qws/linux-arm-g+/qmake.conf 将里面的arm-linux全改成arm-none-linux-gnueabi。然后再安装配置过程中需要用到的四个库文件和g+编译器,四个库文件如下:libx11-dev、libxext-dev、libpng12-dev、libxtst-dev。安装方法都是使用apt-get install。比如安装g+编译器,可以使用如下命令:apt-get install g+配置之前的准备工作做好后,就可以配置了,进入build目录,输入如下配置命令,然后按回车,当提示是否接受GPL协议时,输入yes,接受即可。大概两个小时之后,配置成功。配置命令如下:./qt-extended-4.4.3/configure -verbose -release -image /usr/local/Trolltech/qt-extended-4.4.3-arm -prefix /usr/local/Trolltech/qt-extended-4.4.3-arm -no-pkg-config -no-dbus -xplatform linux-arm-g+ -arch arm -displaysizes 240x320 -build-qt -ui-t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1