為什麼需要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。


上一篇: 下一篇: Makefile 宏