GCC开发工具简介 |
51CMM.COM整编 [2004/04/18] |
在软件开发者组织中,想来遵循一条由来已久的备受尊重的传统:开发工具,包括编译器,应当是免费提供给开发者的。其中有一个顶尖级的组织——自由软件基金会,长期以来致力于提供免费的编程工具。该组织的志愿者们已经认真负责地开发出了很多一流的编译器。其中一个非常杰出的就是GCC(GNU C Compiler),这是一个通用C/C++编译。该编译器在Unix和很多Win32平台上得到了广泛的应用。 注意: 注意:由于Palm公司的网络服务器上对于涉及到"RPM"扩展名文件的处理上的一些小问题,您最好使用Windows操作系统的计算机来下载,以便于保证下载的正确性,防止出现CR-LF终止的问题。然后,再通过一个工作区,将文件传送到Unix计算机上。
Prc-tools 2.0 一个以上的Palm OS SDKs PilRC
在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。(在此如果我遗漏了某人,请致信。) John Marshall, Palm 公司 GCC Tools 开发组 |