新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论高级C/C++编程、代码重构(Refactoring)、极限编程(XP)、泛型编程等话题
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 C/C++编程思想 』 → GCC开发工具简介 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2689 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: GCC开发工具简介 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 C/C++编程思想 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 GCC开发工具简介

    GCC开发工具简介
    ________________________________________
    在软件开发者组织中,想来遵循一条由来已久的备受尊重的传统:开发工具,包括编译器,应当是免费提供给开发者的。其中有一个顶尖级的组织——自由软件基金会,长期以来致力于提供免费的编程工具。该组织的志愿者们已经认真负责地开发出了很多一流的编译器。其中一个非常杰出的就是GCC(GNU C Compiler),这是一个通用C/C++编译。该编译器在Unix和很多Win32平台上得到了广泛的应用。 注意:
    自由软件基金会的志愿者们开发了很多种类的编译器,并且可以提供程序的源代码,条件是任何人如果在其源代码基础上开发出新的产品的话,都应当事先声明其开发基础。
    在Palm 1000型掌上电脑正式推出时,唯一的Plam开发环境只有基于Macintosh的CodeWarrior。很多Unix和Windows的程序员都希望开发Palm应用软件,但是不希望还要去购买Macintosh操作系统和计算机。一些富有进取心和热心的程序员对当时的GCC作了改进,添加了一个PalmPilot编译器端口,用于生成Palm OS的二进制文件。然后很多的开发工具被组合在一起,成为了正式名称为GNU PalmPilot SDK,但是民间称呼为GCC的Palm开发工具。
    GNU PalmPilot SDK的内容
    该软件开发工具包(SDK)可以帮助您用C/C++开发Palm OS应用软件。并且支持Unix 或者 Windows平台,其组成部分包括:
    GCC
    这也是该软件包中最重要的工具,它能够将C/C++程序编译成Motorola 68K形式。
    GDB
    这是一个源代码等级的得调试器
    PilRC
    这是一个Palm应用程序资源编译器。它能够将文本形式的资源表述转化为应用程序的资源代码。这些表述资源的文本文件包含了对资源的描述,并且器扩展名为.RCP。
    PilrcUI
    这个软件能够以图形界面的形式显示RCP文件,以便开发者能够预览一下自己软件的资源文件在掌上设备上的显示效果。图中显示了一个PilrcUI的工作界面。
    Copilot
    该软件能够在硬件等级上模拟掌上设备的运行。它需要一个来自实际的掌上设备的ROM Image的支持,以便能够惟妙惟肖地模仿掌上设备的运行效果。该软件的更进一步的开发工作已经由Palm公司接管。详情请见第十章的“调试Palm应用程序”部分。
    如何获得GCC
    在网络上有很多地方提供GCC方面的资源。关键是看您使用的是Unix 还是 Windows操作系统。并且每时每刻都有新的资源来源出现。因此,您最好经常去看一看Palm公司网站上提供的着方面的最新信息。如果您像一次获得所有的GCC开发组件的话,可能这是一个比较艰巨的下载任务,因为全部文件有大约15M。因此,请确认您有充裕的时间。笔者最常光顾的GCC工具下载地址是Ray's Software Archive(http://www.palmcentral.com/)。
    由于免费的GCC工具包自身不带有商业化的Conduit开发工具包CDK,因此GCC的用户在需要开发Conduit时,有两个选择:您可以单独购买Palm公司的Conduit SDK工具包,大约需要99美元。或者您就干脆完全依赖Palm OS自带的那个备份Conduit。
    您也可以加入 Massena GCC 讨论组,以便获得更深入的关于GCC开发的讨论信息。
    GCC的安装
    除了安装GCC工具包本身以外,您还需要安装Palm OS SDK。其中包含了必需的库文件和头文件。3.5版本以上的SDK能够直接和GCC配合使用,而无需任何修改。而早期的SDK版本则需要经过改动才能使用。您可以在“GCC开发工具”页面获得更多的有关如何进行修改的信息。
    您可能希望安装好几个版本的SDK,并且希望其中的一个称为系统缺省默认的版本,以便于能够在编译的时候无需任何的`-palmosN'命令行选项。一个叫做`sdk'的符号连接能够用来设置系统缺省的SDK版本。如,我们设置3.5版本的SDK为默认值的操作如下: $ cd /usr/local/palmdev
    $ rm -f sdk
    $ ln -s sdk-3.5 sdk
    在Unix RPMs上安装
    目前已经可以在Unix系列的系统环境下安装该工具。这其中也包括了在Intel i386构架(有 glibc 2.1 (libc 6))的Linux环境下的安装。(例如,这意味着RedHat 6.0以上的操作系统也可以安装PRC-Tools。)使用其他版本Unix操作系统的用户也可以进行编译连结工作。 安装prc-tools-2.0 (4.4 Mb)。务必使用/usr/local安装目录。
    如果您愿意,您可以安装prc-tools-htmldocs-2.0 (850 Kb),以便获得HTML格式的文档。(在您安装主要的RPM时,你已经获得了info格式地文档。)
    您可以下载一些范例程序 (90 Kb)。
    您将需要一个Palm OS SDK。并且无论你获得的是哪个版本,它们都应当被安装在/usr/local/palmdev目录。
    您需要PilRC来进行资源编译。

    注意:由于Palm公司的网络服务器上对于涉及到"RPM"扩展名文件的处理上的一些小问题,您最好使用Windows操作系统的计算机来下载,以便于保证下载的正确性,防止出现CR-LF终止的问题。然后,再通过一个工作区,将文件传送到Unix计算机上。
    在Windows系统上安装
    如果您以前安装过prc-tools 0.5.0版,您可能需要将其删除。因为该版本中的一个动态链接库文件cygwin1.dll和当前最新版本相冲突。同时,prc-tools 0.5.0版定义了一个GCC_EXEC_PREFIX环境变量,它在最新版本的GCC中会引起错误。所以您需要确保该变量没有被设置。
    Prc-tools需要Cygwin b20.1的支持,因此,在您安装Prc-tools之前,你首先要安装它。在安装时,您由两种选择: 选择完全安装(14M)——您可以获得所需要的动态链接库文件,还有大量的Windows环境下的开发工具。包括一个原有的Cygwin GCC。(如果您正在使用Handspring's GCC tools的话,这个Cygwin GCC将和您现有的cygwin_b20.1.exe程序完全一样。)
    如果您不需要这些工具,也不想浪费磁盘空间,您可以选择user tools only Cygwin安装(3M)。它包括了基本的必需工具。和完全安装相比,唯一没有被安装,但是却可能需要的工具就是make(55K),您可能希望将其添加到您的Cygwin H-i586-cygwin32\bin目录。
    (如果您感兴趣的话,您可以获得Cygwin的源代码)

    您现在已经可以来安装 prc-tools 2.0 了(7 Mb)。您可以选择安装的内容:开发工具体系自身,工具的文档(HTML格式),以及一些范例程序。
    您可能还需要一个 Palm OS SDK。您可以安装任何版本的SDK。
    您还需要PilRC用来编译您的资源文件。
    Cygwin的安装过程需要在您的安装路径中包含Cygwin,具体信息请见自述文件。可能你同样需要添加prc-tools。在此之后,您就可以开工了!
    总之,您需要下载和安装的内容如下:

    完全安装Cygwin(或者选择安装Cygwin user tools和make)
    Prc-tools 2.0
    一个以上的Palm OS SDKs
    PilRC
      
    注意:在Windows系统下,对应于/usr/local/palmdev的目录是C:\PalmDev。
    在Windows系统下,您需要添加prc-tools 二进制文件目录到您的安装路径中。即添加目录:<prc-tools-安装的根目录>\H-i586-cygwin32\bin。例如您将PRC-Tools 安装在了缺省的目录下,那么,您必需添加下列代码到您的AUTOEXEC.BAT文件中: set PATH="C:\Program Files\PRC-Tools\H-i586-cygwin32\bin;%PATH%"   更多的技术文档,您可以阅读有关prc-tools, gcc的页面。这些HTML格式的文件将被安装在下列目录: file:///C:/PalmDev/doc/index.html (Windows系统)
    或者
    file:/usr/local/palmdev/doc/index.html (Unix系统)     在当前的PRC-Tools版本中存在一个浮点方面的bug:无法完成浮点数据和整型数据之间的转换。该问题将会在PRC-Tools 2.1版本中被解决。在此期间,如果您确实要在您的开发中使用到浮点数据的话,您可以通过下载一个库文件,取代原有库文件的方式来解决。这个库文件分为Unix 和 Windows两个版本。如果您的开发中不涉及到浮点数据,那么这个bug并不会影响您。
    编译和连接源代码
    如果您要自己完成本开发工具包的编译和连接工作的话,您需要从GCC Tools页面下载该工具包的源文件。您可能还需要GCC 2.95.2, binutils 2.9.1, 和 gdb 4.18的源文件。这些都可以在GNU web site上面的BUILDING.html页面找到。
    理论上讲,最新版本的PRC-Tools能够在支持GCC的Unix类型的操作系统上毫不费力的进行源代码的编译连接工作。无论是tarball 还是 source RPM形式的都能支持。
    您尤其需要下载针对binutils-2.9.1, gdb-4.18, 和 GCC-2.95.2的源代码。并且您需要利用Palm OS SDK来编译crt, libc, 和 libm目录下的实时支持代码
    Palm OS SDKs
    除了安装编译器、开发工具以外,您还需要安装Palm OS SDK来对软件进行编译。SDK 3.5版本能够支持当前最新版本的PRC-Tools。
    但是,earlier SDKs需要做一些简单的修改才能配合PRC-Tools使用。您可以下载到适合SDK 1.0, 2.0, 3.1版本的补丁。它们都拥有Windows 和 Unix两个版本。
    其它有用的资源
    谈到这里,您应该可以开始安装和运行您的PRC-Tools工具包了。在此,我们为您列出了一些网络资源的链接清单,希望对您有进一步的帮助: Aaron Ardiri写了一篇很不错的“Setting up PRC-Tools under Windows”(在Windows环境下安装PRC-Tools)。尽管它的这篇文章中的很多内容和本文差不多,但是它里面有一些本文没有涉及到的细节内容,尤其是它详细介绍了用户如何自定义安装的信息,包括更改新的安装目录,以及为此必须做的全部修改等。 David Silber的“Palm OS Application Development HOW TO”是一篇很好的使用指南,尤其是当您使用的时Linux操作系统时。 O'Reilly的“Palm Programming; A developer's guide”并不是最好的Palm编程参考书籍,但是它是唯一可以在网上免费察看的一本。 Palm OS推出的“SDK Documentation??乏T?"?? ?? ??”是最基本的参考资料。您不仅可以在该网站上察看html网页文件,也可以下载pdf格式的文件,同时还可以购买打印的文档。 Dan Parson的文章“A Simple PalmOS Application written in C”可能是一篇比较老的文章。但是如果您忽略新版本的SDK带来的那些兼容性问题的话,它还是比较有价值的一篇文章。 在Palm OS SDK中附带了很多范例程序。但是目前只有其中的两篇是能够完全被PRC-Tools编译的。不过其它的程序,只要简单的读一读源代码,还是足够的。(这些范例程序最初都是为CodeWarrior编写的。) 前面提到的“POSE HOWTO”中有一个非常简单的“hello world”程序范例。
    版权协议
    GNU工具包中的in *.palmos.diff形式的补丁程序和“tools”子目录中的代码都是免费的软件。包括本2.0版本在内的,以及以后的版本(如果你愿意)的工具包,在GNU普通公开协议(GNU General Public License)规定的范围内都可以可以被重构、修改。详情请见COPYING文件。
    在“crt”子目录中的实时支持代码目前处于公开状态。结果对象代码(resulting object code)也可以自由地被连接到用户的程序中。
    对于“libc”子目录中的代码的规定如下:
    libc.a
    liba.sa——这是一个小型的标准的C语言库文件(静态和共享版)。包含了type, printf, friends, putchar() 和 printf()用于向LCD输出(甚至滚动显示)。我们不希望这些函数被非常泛滥地用于调试以外的用途,或者被用于最终的程序中。相同的还有String函数、memmove、bcopy等。很多库函数都是来自于Linus Torvalds,都可以在Linux 内核的 “lib”目录中找到。其作者许可我们公布这些,而不用GPL抵押。(详情在prc-tools 0.5.0的自述文件中,作者是Jeff Dionne。)
    “libm”子目录中的代码来源于Cephes Math Library,这方面的权限是这样规定的:
    libm.a
    单精度数学函数库。一些最基本的数学函数功能,如加法,乘法等,本来用户希望来自于一个完整的libm.a函数库。但是在最后的编译过程中,应该使用libgcc.a来实现这些功能。而libm.a函数库的版权属于Cephes Math Library 2.2版, 1992年6月发布, Copyright 1984, 1987, 1988 by Stephen L. Moshier。
    鸣谢
      最初的支持Palm OS的,用于gcc 2.7.2.2, binutils 2.7, 和 gdb 4.16的快速连接工具包是由D. Jeff Dionne, Kresten Krab Thorup, Ian Goldberg, Keith Packard, 和 Kenneth Albanowski等人编写的。John Marshall将其移植到了当前的GCC工具包和binutils中。Peter Trommler 将该软件包修改为gdb 4.17版中。还有很多其他的人提供了好的建议、补丁、错误报告和其他的支持。另外还要感谢:Kenneth Albanowski, Marc Balmer, Simon Burge, Jesse Donaldson, Tom Dyas, Mark W. Eichin, Peter Eisenlohr, Christian Falch, Rick Flower, Lonnie Foster, Ian Goldberg, John Ioannidis, Oliver Kasten, Scott Knight, David Loomes, Jonathan Lupa, Todd Mokros, Bret Musser, Kjell M. Myksvoll, Joakim Ogren, Bob Petersen, Thomas Pundt, Daniel R. Risacher, Alex Robinson, Keith Rollin, Craig Setera, Katherine Smith, Michael Sokolov, Peter Trommler, Valeriy "Uwe" Ushakov, Andrew Vasquez, Brian Warner, David Williams, Ben Williamson, and Naoki Yamaya。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/12/17 8:43:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 C/C++编程思想 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/2/9 2:12:55

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    2,873.047ms