工程管理器

原文链接

在实际的开发过程中,仅仅通过使用GCC命令对程序进行编译时效率是非常低的,原因主要有以下两点:

1.程序往往是由多个源文件组成的,源文件的个数越多,那么GCC的命令行就会越长。此外,各种编译规则也会加大GCC命令行的复杂度,所以在开发调试程序的过程中,通过输入GCC命令行来编译程序是很麻烦的。



2.在程序的整个开发过程中,调试的工作量占到了整体工作量的70%以上。在调试程序的过程中,每次调试一般只会修改部分源文件。而在使用GCC命令行编译程序时,GCC会把那些没有被修改的源文件一起编译,这样就会影响编译的总体效率。


为了提高编译程序的效率,GCC提供了半自动化的工程管理器Make。所谓半自动化是指在使用工程管理器前需要人工编写程序的编译规则,所有的编译规则都保存在Makefile文件中,全自动化的工程管理器在编译程序前会自动生成Makefile文件。


Make工程管理器的优越性具体体现在以下两个方面:
1.使用方便。通过命令“make”就可以启动Make工程管理器对程序进行编译,不再需要每次都输入GCC命令行。


2.调试效率高。Make会检查每个源文件的修改时间(时间戳),只有在上次编译后被修改的源文件才会在接下来的编译过程中被编译和链接。


Makefile
Make工程管理器是完全根据Makefile文件中德编译规则命令进行工作的。Makefile文件由以下三项基本内容组成:


1.需要生成的目标文件(target file)


2.生成目标文件所需要的依赖文件(dependency file)


3.生成目标文件的编译规则命令行(command)


这三项内容按照以下格式进行组织:
target file : dependency file
command


其中,Makefile规定在书写command命令行前必须加一个<Tab>键。


Make工程管理器在编译程序时会检查每个以来文件的时间戳,一旦发现某个依赖文件的时间戳比目标文件要新,就会执行目标文件的规则命令来重新生成目标文件。这个过程称为目标文件的依赖规则检查。以来规则检查是Make工程管理器的最核心的工作任务之一。

猜你喜欢

转载自blog.csdn.net/weixin_42048417/article/details/81584483