为什么需要Makefile? - 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。