makefile的目的是什么?

时间:2017-03-02 01:55:08

标签: c

它做什么?你刚刚在命令行上运行make吗? makefile是否就像要执行的命令列表一样,在make命令的末尾你有一堆可执行文件?

2 个答案:

答案 0 :(得分:1)

是的,它基本上只是一个指令列表。 makefile的目的是轻松构建一个可执行文件,可能需要创建许多命令(手动编译会很麻烦)。

答案 1 :(得分:1)

上面的答案非常正确,但遗漏了一个重点:makefile是智能的,它们只是运行所需的命令,而不是全部。这是通过项之间的依赖关系概念来完成的,例如:

  

从B生成A,必须运行(例如)" cc -o A B"。

这些规则/依赖关系可以级联(要有A你必须使用B;要有B,你必须使用C + D + E,要有D你必须做......)

如果您的项目是在许多文件中构建的,那么makefile将(通常)重新创建其依赖项已更改的对象, not 所有对象。

将C项目分成10个文件。你修改一个,说" main.c"然后想要测试项目。使用Makefile,只有" main.c"重新编译,然后最终的可执行文件链接。如果没有Makefile,可能会重新编译所有10个文件。