你给它一个 -c 开关,gcc
只把给它的文件编译成目标文件, 用源码文件的文件名命名但把其后缀由“.c”或“.cc”变成“.o”。 如果你给它的是一列目标文件, gcc
会把它们连接成可执行文件, 缺省文件名是 a.out 。你可以改变缺省名,用开关 -o 后跟你指定 的文件名。
因此,当你改变了一个源码文件后,你需要重新编译它: 'gcc -c filename.c' 然后重新连接你的项目: 'gcc -o exec_filename
*.o'。 如果你改变了一个 header 档,你需要重新编译所有 #include 过 这个档的源码文件,你可以用 'gcc -c file1.c
file2.c file3.c' 然后象上边一样连接。
当然这么做是很繁琐的,幸亏我们有些工具使这个步骤变得简单。
本文的第二部分就是介绍其中的一件工具:GNU Make 工具。
(好家伙,现在才开始见真章。您学到点儿东西没?)
2) GNU Make 工具 ~~~~~~~~~~~~~~~~
2.1 基本 makefile 结构
GNU Make 的主要工作是读进一个文本文件, makefile 。这个文
件里主要是有关哪些文件(‘target’目的文件)是从哪些别的 文件(‘dependencies’依靠文件)中产生的,用什么命令来进行
这个产生过程。有了这些信息, make 会检查磁碟上的文件,如果 目的文件的时间戳(该文件生成或被改动时的时间)比至少它的一 个依靠文件旧的话, make
就执行相应的命令,以便更新目的文件。 (目的文件不一定是最后的可执行档,它可以是任何一个文件。)
makefile
一般被叫做“makefile”或“Makefile”。当然你可以 在 make 的命令行指定别的文件名。如果你不特别指定,它会寻
找“makefile”或“Makefile”,因此使用这两个名字是最简单 的。
一个 makefile 主要含有一系列的规则,如下:
: ... (tab)<command>
(t |