订单查询 购书指南 购物车 收藏  
    首页 热点专题 精确搜索 精品推荐 俱乐部论坛 下载服务 走近科海 征稿专栏 新书预告 各地经销商 特价直销


前言


虽然在当今的计算机界中,正在进行的自由软件运动不一定是最重要的,但我们确实正处于一个巨大的变革的中心。软件的所有权正在由公司专有变为可根据任何目的自由获取和使用。目前,自由软件不仅包括程序语言编译程序和连接程序,而且还有大量的工具,图形化的用户界面环境,甚至包括整个操作系统。
除此之外,还有一个事实就是所有的自由软件都是由GCC编译的,因此可否将GCC称作软件世界中最重要的一部分也就值得探讨了。当然,有很多种语言可用于编写程序,这些语言也都有很多编译程序,但这些编译程序中的绝大部分都是由GCC编写成并编译的。从某些方面来看,所有的自由软件都源起于GCC。有些计算机公司已经开始放弃自己的编译程序而选择简单安装GCC编译程序了。使用GCC是免费的,而且还能得到持续的功能扩展和维护。
伴随着最近加入GCC家族的两种语言——Java和Ada——GCC编译程序的羽翼扩展得更大更广了。这使得GCC可用的语言达到6种:C、C++、Objective-C、Fortran、Java和Ada。而且它还在不断地开发其他语言,例如COBOL,如果有足够支持就会将这些语言也加入GCC。
里程碑
GNU项目始于1984年,目的是为了开发一种免费操作系统。Richard Stallman是GNU项目的奠基人,并且是GCC最初的作者。
GCC发布的第一个beta版,发布号为0.9,是于1987年3月22日发布的。而第一个实际发布(版本1.0)是在1987年5月23日发布的。从一开始到写本书时的版本3.1,GCC已经经历了108个发布。在过去的15年中,平均每1.7个月就会发布一个新的版本。
内幕
本书旨在为那些意欲使用GCC来开发软件的人提供有价值的信息。当中包含的有关GCC内幕的有用信息能让您轻松上手,开始在编译程序内部工作。但本书的主要目的还是要指导您一步步地安装并使用编译程序来开发软件。GCC是个巨大的软件集合,而且像大多数大型软件系统那样,它含有很多有用的功能。但只有发现了这些功能,明确知道它做了些什么,而且理解怎样使用它之后,才能更好地应用这些功能。这正是本书的主要目的。
本书分为3个部分。第1部分,“自由软件编译程序”,介绍了编译程序的一些基础知识,以及一些可以用来下载和安装编译程序的指令。第2部分,“使用编译程序集合”,包含对编译程序指令的详细介绍。对6种主要的编程语言各用了一章的篇幅(并辅以一些实例)进行说明。另有一个特殊章节用来描述预处理程序以及连接由不同语言产生的目标文件的技术。第3部分,“外设和内设”,介绍了连接、调试、交叉编译、makefiles和GNU汇编器。第3部分也包含了编译程序前端和后端的内部工作信息。
GCC拥有众多的可用命令行选项。附录D按字母顺序列出了这些选项,附录C中有对这些选项的交叉引用。第21章甚至包含更多的命令行选项——那些必须和特定计算机硬件一起使用以生成代码的选项。
为了加深您对本书涵盖的主题的理解,在此对每一章进行一个简短的介绍:
第1章是对GCC基本概念的总体介绍,包括它的内容和能够编译的语言的列表。
第2章介绍安装GCC的步骤。
第3章介绍预处理程序的工作过程,以及如何使用它来处理一种语言的源代码。
第4章包括编译和连接C语言的一些例子。
第5章包括编译和连接C++语言的一些例子。
第6章包括编译和连接Objective-C语言的一些例子。
第7章包括编译和连接Fortran语言的一些例子。
第8章包括编译和连接Java语言的一些例子。
第9章包括编译和连接Ada语言的一些例子。
第10章包括了混合两种语言创建一个可执行程序的例子。
第11章解释如何在编译的程序中使用国际化工具,允许它根据所用的地域调整显示字符串。
第12章包括生成和使用静态库和共享库的例子。
第13章解释了使用GNU调试器的基本信息。
第14章描述make及其相关工具的用法。
第15章讨论GNU汇编器,并描述如何在GCC中使用它。
第16章描述如何配置GCC来编译和连接可在其他计算机上执行的程序的过程。
第17章描述如何使用GCC生成嵌入式系统的代码。
第18章包含的例子介绍如何从编译程序(而不是从目标代码)产生有用的输出。
第19章描述lex和yacc的初级用法,用来为GCC创建一种语言的前端。
第20章描述了由编译程序前端产生的中间语言的内容,而编译程序后端会读取该中间语言。
第21章包含了命令行选项列表,它们可应用于运行在指定硬件上的各种GCC版本。
附录A包含了GNU通用公共许可的拷贝。
附录B列出了影响GCC的环境变量。
附录C是按照类别交叉引用的命令行选项。
附录D是按照字母顺序排列的命令行选项列表。
附录E是术语表。
返回专题主页 本书目录 本书前言