使用GNUGCC创建BREW应用.docVIP

  • 3
  • 0
  • 约6.73千字
  • 约 8页
  • 2017-06-14 发布于北京
  • 举报
使用GNU GCC创建BREW应用 出处: /article/show.asp?id=542 摘要:本文介绍了如何在Windows平台上安装设置用于BREW应用开发的GNU GCC编译器,并演示了使用GNU GCC创建BREW应用模块的一个实例。 关键字:BREW,GNU GCC编译器,GNUDE,ARM,ADS。 什么是BREW: BREW(Binary Runtime Environment for Wireless,无线二进制运行环境)是美国高通公司为无线数据服务提供的一整套端到端的解决方案。通过调用BREW SDK提供的API,开发者可以使用C/C++开发BREW应用。 什么是GNU GCC: GNU GCC(GNU Compiler Collection,GNU编译器集合)是基于开源项目的广为使用的免费编译器集合,支持C、C++、Objective C、Chill、Fortran和Java等语言。这篇文章中我们讨论使用GNU GCC编译C/C++程序生成ARM目标代码。 关于GNUDE: GNUDE(GNU Development Environment,GNU开发环境)是基于GNU GCC编译器集合的开发工具套件,集成了支持多种微处理器平台应用开发的模拟器和调试器,目前目标平台支持ARM7、ARM9和XScale,工作环境为Windows NT/2000/XP。 为什么使用GNU GCC: 目前所有支持BREW平台的手持终端都采用基于ARM的处理器,而开发者通常都是使用基于Intel架构的x86 PC作为开发平台,所以需要使用一种交叉编译器来生成ARM平台的目标代码。 有两种交叉编译器可供选择:商业软件ADS(ARM Development Suite)和自由软件GNU GCC。 作为商业软件的ADS比GNU GCC有很多优势:专业的技术支持,目标代码更可靠更优化,等等。可是评估版的ADS只能使用45天,高昂的注册费用令广大中小软件开发商望而却步。因此问题的关键是,免费的GNU GCC能否胜任我们的需要?就目前使用的情况看,答案是肯定的,许多使用GNU GCC编译的BREW应用已经成功运行在各种手机终端上。 所以,让我们开始吧! 准备所需工具包: gnude-arm-win.zip:在这里下载最新的GNUDE版本(72M左右)。 GCCSupportForBREW.zip:请发信至dev-cn-support@索取。 build_files.tar:请发信至dev-cn-support@索取。 安装工具包: 1.?解压缩gnude-arm-win.zip至本地,例如c:\gnude\。 2.?解压缩GCCSupportForBREW.zip,拷贝GCCResolver.c至BREW SDK\src目录(BREW SDK为BREW SDK安装路径,下同);拷贝BREWelf2mod.exe至GNUDE DIR\bin目录,例如c:\gnude\bin。 3.?解压缩build_files.tar,拷贝make.exe和rm.exe至GNUDE DIR\目录。 设置环境变量: 控制面板-系统-高级-环境变量-系统变量 将GNUDE DIR和GNUDE DIR\bin(例如c:\gnude;c:\gnude\bin)加入Path环境变量中。 好了,你的GNU GCC已经准备运行了! 一个实例: 下面我们将以BREW SDK\Examples\WhiteBoard为例,演示如何使用GNU GCC编译程序生成ARM目标模块WhiteBoard.mod。 拷贝build_files.tar中的whiteboard-gcc.mak至BREW SDK\Examples\WhiteBoard目录,进入DOS窗口,在WhiteBoard所在目录输入: make –f whiteboard-gcc.mak就会生成WhiteBoard.mod目标文件。 关于makefile的编写是初学者比较头痛的问题,这里简要介绍了一下makefile的写法,并给出了一个经过注释的makefile模板,稍微修改就可以用于任何BREW C/C++应用。 使用make 在开发软件时,开发者必须自行注意有哪些文件需要重新编译,随着项目规模的扩大,这件工作的强度会成几何级数增长,直至不可控制,而make的设计就是为了减轻这个负担,根据一定的规则编写makefile描述需要操作的步骤,make会自动完成相关的文件更新。 对于软件开发人员来讲,需要操作的步骤就是指程序各模块间的依赖关系,make只要知道这种依赖关系就知道什么时候该编译链接哪些文件。 在了解makefile写法之前,我们需要知道自己程序各模块间的依赖关系。图一将这种关系以树状结构图表示,解读的方式是由

文档评论(0)

1亿VIP精品文档

相关文档