make 工具可以完成多个源文件的编译和链接自动化处理。为了合理有效地编译多个源文件,尤其是在项目比较大时, make 工具的使用尤为重要。
为了正确有效地使用 make 工具,我们需要为项目提供一个 makefile 文件,该文件提供了一种机制,它告诉应用程序应该如何构造。 Makefile 文件一般都会和项目的其他源文件放在同一个目录下。实际上,如果管理的是一个大项目,你可以用多个不同的 makefile 文件来分别管理项目的不同部分。如果你分析 Linux 的内核源码,你将清楚地看到这一点。
Makefile 文件由一组依赖关系和规则构成。每个依赖关系由一个目标和一组该目标依赖的源文件组成。而规则描述了如何通过这些依赖文件创建目标。一般来说,目标是一个单独的可执行文件。如果你想深入得学习 makefile 的各种规则,可以选择阅读手册或者网上的一篇 GNU make指南 。
提示 :规则所在的行必须以制表符 tab 开头,用空格是不行的。
注意 :在 makefile 中有些命令可能会以减号 - 开头,比如说“ -rm ”,它的含义是让 make 命令忽略 rm 命令的执行结果,这意味着即使由于目标文件不存在而导致 rm 命令返回错误,执行 make 命令时也会成功。
提示 :当我们的源文件只有一个 hello.c 时,可以选择使用 make hello 命令来编译,它的执行效果与 cc hello.c –o hello 相同,这是 make 命令的一条内置规则。
源代码控制
UNIX 在源代码管理方面有三个被广泛使用的系统,它们分别是 RCS 、 CVS 和 SCCS 。它们的使用方法可以去参考手册,我们可以在大项目的实践中去摸索使用。
实际上,现在还多人都会选择 svn 系统( SubVersion ),你可以在 网上 得到它的中英文手册。
其他开发工具
我们可以使用 nroff 或者 groff 来编写使用手册
patch 程序可以用来更新软件,它通过界定两个版本之间的差异来更新软件。
发布软件可以有两种方式:源代码软件包或者 RPM 软件包。源代码软件包一般使用 tar 工具包装;而 RPM 软件包则要复杂的多,详细情况可以参考手册。
除了在命令行上直接编写、编译软件外,我们还可以选择某些 IDE 工具,比如 xwpe 、 C-Force 、 Kdevelop 或 Eclipse 等。