Makefile-why-makefile
提供:Dev Guides
なぜ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*
以下は、fnctions.hのコードです-
void print_hello();
int factorial(int n);
ファイルをコンパイルして実行可能ファイルを取得する簡単な方法は、コマンドを実行することです-
gcc main.cpp hello.cpp factorial.cpp -o hello
このコマンドは、_hello_バイナリを生成します。 この例では、4つのファイルしかなく、関数呼び出しのシーケンスがわかっています。 したがって、上記のコマンドを入力し、最終的なバイナリを準備することが可能です。
ただし、数千のソースコードファイルがある大規模なプロジェクトでは、バイナリビルドを維持することが困難になります。
*make* コマンドを使用すると、大きなプログラムまたはプログラムのグループを管理できます。 大きなプログラムの作成を開始すると、大きなプログラムの再コンパイルには短いプログラムの再コンパイルよりも時間がかかることがわかります。 さらに、通常はプログラムの小さなセクション(単一の関数など)でのみ作業し、残りのプログラムの多くは変更されないことに気付きます。
次のセクションでは、プロジェクトのメイクファイルを準備する方法を説明します。