📜  为什么要使用Makefile? -指导点

📅  最后修改于: 2020-11-01 04:36:09             🧑  作者: Mango


编译源代码文件可能会很麻烦,尤其是当您必须包含多个源文件并在每次需要编译时都键入compiling命令时。 Makefile是简化此任务的解决方案。

Makefile是特殊格式的文件,可帮助自动构建和管理项目。

例如,假设我们具有以下源文件。

  • main.cpp
  • 你好
  • 因数
  • 功能.h

main.cpp

以下是main.cpp源文件的代码-

#include 

using namespace std;

#include "functions.h"

int main(){
   print_hello();
   cout << endl;
   cout << "The factorial of 5 is " << factorial(5) << endl;
   return 0;
}

你好

下面给出的代码用于hello.cpp源文件-

#include 

using namespace std;

#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;
}

功能.h

以下是fnctions.h的代码-

void print_hello();
int factorial(int n);

编译文件并获取可执行文件的简单方法是运行命令-

gcc  main.cpp hello.cpp factorial.cpp -o hello

此命令生成hello二进制文件。在此示例中,我们只有四个文件,并且知道函数调用的顺序。因此,键入上述命令并准备最终二进制文件是可行的。

但是,对于我们拥有成千上万个源代码文件的大型项目,很难维护二进制版本。

使用make命令可以管理大型程序或程序组。开始编写大型程序时,您会发现重新编译大型程序要比重新编译短程序花费更长的时间。此外,您会注意到您通常只在程序的一小部分(例如单个函数)上工作,而其余大部分程序均未更改。

在接下来的部分中,我们将了解如何为我们的项目准备一个makefile。