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