Makefileの使用


Makefile
GCCの基本文法については、見ることができます.http://blog.csdn.net/runnyu/article/details/50317723
コンパイルするファイルの数が少ない場合は、gccを使って直接コンパイルすることができます.しかし、一つのプロジェクトのソースファイルは数え切れないほど多くあります.タイプ、機能、モジュールによってそれぞれいくつかのディレクトリに配置されています.この場合、makeコマンドを使う必要があります.
Makefile基本文法
makeはコマンドツールで、Makefileファイルの命令を説明します.以下はMakefileファイルの基本文法です.
target ... : prerequisites ... 
             command 
             ... 
             ... 
ターゲットファイルはObject Fileでもいいし、実行ファイルでもいいです.
prerequisitesは、そのtargetを生成するために必要なファイルまたはターゲットです.
commandはmakeが実行するコマンドです.(任意のShell命令)
このようにMakefileファイルを作成することができます.
実現とhttp://blog.csdn.net/runnyu/article/details/50317723例ではgccコンパイルと同じ機能を使います.
test:add.o test.o
  gcc add.o test.o -o test
  @echo "------success------"
test.o:test.c add.h
  gcc -c test.c
add.o:add.c
  gcc -c add.c
clean:
  rm test.o add.o
その後makeコマンドを呼び出して成功的にコンパイルできます.一行のものが多すぎるなら、私達は\を使って改行してもいいです.
Makefileの変数
私たちはMakefileファイルで変数を宣言して使用することができます.例えば、上記のMakefileファイルをこのように修正することができます.
objs=add.o test.o

test:$(objs)
  gcc $(objs) -o test
  @echo "------success------"
test.o:test.c add.h
  gcc -c test.c
add.o:add.c
  gcc -c add.c
clean:
  rm $(objs)
最初の行はObjs変数を宣言しました.以下は$を使って変数を使います.Makefileでは多くの場所でコードを簡略化するために使用できます.また、新しいファイルが追加されている場合は、個々の変更なしに変数を変更する必要があります.
Makefileの自動導出
makeコマンドは、ファイルとファイル依存関係の後のコマンドを自動的に導出できます.したがって、各[.o]ファイルの後に同様のコマンドを書く必要はありません.なぜなら、私たちのmakeは自動的に認識し、コマンドを導出します.
makeが[.o]ファイルを見たら、自動的に[.c]ファイルを依存関係に追加しますので、Makefileを作成する必要があります.
objs=add.o test.o

test:$(objs)
  gcc $(objs) -o test
  @echo "------success------"
test.o:add.h
  gcc -c test.c
add.o:
  gcc -c add.c
clean:
  rm $(objs)