GNU Makeについてすこし勉強してみた。

cでコーディングしているときのお話。

ソースコードを分割するとき(プロトタイプ宣言を別のファイルに分けたりする)、コンパイルの順番を意識しなくてはいけない。

それをMakefileなるものに書き込むのである。

メモを以下に示します。

MakeをもちいてHello, worldを。

/* hello.c */

include

in t main(void)
{
printf("Hello, world!!\n");
return 0;
}

ここで、同一のディレクトリ内において以下の内容のファイルを作成


# Makefile
hello: hello.c
gcc -o hello hello.c

あとは、コマンドラインより

$ make
gcc -o hello hello.c

これで、helloという名の実行ファイルが生成されます。


もう少し、発展させます。

分割コンパイルの初歩です。


以下の二つのソースコードを作成します。

/* hello.c */
#include

int main(void)
{
printf("Hello, world!!\n");

aisatsu(); /* オリジナルの関数です */

return 0;
}


/* aisatsu.c */
#include

void aisatsu(void){
printf("Konnichiwa\n");
}



以下のようなメイクファイルを作る

#Makefile
hello: hello.c aisatsu.c
gcc -o hello hello.o aisatsu.o

hello.o: hello.c
gcc -c hello.c
aisatsu: aisatsu.c
gcc -c aisatsu.c

$ make

これでOK