為什麼使用 Makefile?



編譯原始碼檔案可能很費力,尤其當您必須包含多個原始檔並且每次需要編譯時都必須鍵入編譯命令時。Makefile 是簡化此任務的解決方案。

Makefile 是特殊格式的檔案,可幫助自動構建和管理專案。

例如,我們假設有以下原始檔。

  • main.cpp
  • hello.cpp
  • factorial.cpp
  • functions.h

main.cpp

以下是 main.cpp 原始檔程式碼 -

#include <iostream>

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

以下是 hello.cpp 原始檔程式碼 -

#include <iostream>

using namespace std;

#include "functions.h"

void print_hello(){
   cout << "Hello World!";
}

factorial.cpp

以下是 factorial.cpp 程式碼 -

#include "functions.h"

int factorial(int n){
   
   if(n!=1){
      return(n * factorial(n-1));
   } else return 1;
}

functions.h

以下是 functions.h 程式碼 -

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

編譯檔案並獲取可執行檔案的簡單方法是執行命令 -

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

此命令生成 hello 二進位制檔案。在此示例中,我們只有四個檔案,並且我們知道函式呼叫的順序。因此,鍵入以上命令並準備最終二進位制檔案是可行的。

然而,對於我們擁有數千個原始碼檔案的大型專案,維護二進位制構建變得困難。

make 命令允許您管理大型程式或程式組。當您開始編寫大型程式時,您會注意到重新編譯大型程式所花費的時間比重新編譯小型程式所花費的時間更長。此外,您會注意到您通常僅處理程式的一小部分(例如單一函式),而剩下的程式大部分保持不變。

在後續部分中,我們將瞭解如何為我們的專案準備 Makefile。

廣告
© . All rights reserved.