为什么需要Makefile?
对于本次在线教程中的讨论,假定有以下的源文件。
- main.cpp
- hello.cpp
- factorial.cpp
- functions.h
main.cpp 文件的内容
#include <iostream.h> #include "functions.h" int main(){ print_hello(); cout << endl; cout << "The factorial of 5 is " << factorial(5) << endl; return 0; } |
hello.cpp 文件的内容
#include <iostream.h> #include "functions.h" void print_hello(){ cout << "Hello World!"; } |
factorial.cpp 文件的内容
#include "functions.h" int factorial(int n){ if(n!=1){ return(n * factorial(n-1)); } else return 1; } |
functions.h 内容
void print_hello(); int factorial(int n); |
琐碎的方法来编译的文件,并获得一个可执行文件,通过运行以下命令:
CC main.cpp hello.cpp factorial.cpp -o hello |
这上面的命令将生成二进制的Hello。在我们的例子中,我们只有四个文件,我们知道的函数调用序列,因此它可能是可行的,上面写的命令的手,准备最后的二进制。但对于大的项目,我们将有源代码文件成千上万的文件,就很难保持二进制版本。
make命令允许您管理大型程序或程序组。当开始编写较大的程序,你会发现,重新编译较大的程序,需要更长的时间比重新编译的短节目。此外会发现通常只能在一小部分的程序(如单一功能正在调试),其余的程序不变。
在随后的章节中,我们将看到项目是如何准备一个makefile。