C

簡単なMakefile

Makefileはコンパイル手順を書くと思ったらいいが、依存関係まで見てくれるので、それについて記述する。

たとえば、app と言うアプリケーションは、主ソース app.c とヘッダ app.h、ライブラリファイル applib.cからできてるとすると、依存関係は次の通り。

app: app.o applib.o
   gcc -o app applib.o app.o
app.o: app.c app.h
   gcc -c app.c
applib.o: applib.c app.h
   gcc -c applib.c

で、これはそのままMakefileとして保存して、makeコマンド一発でapp実行形式ができる。簡単。

いったん作成した実行ファイルは、ソースファイルなど(コロンの右側に記述した依存ファイル)に変更がない限り、何度makeコマンドを実行しても変化しない。

強制的に削除したい場合、よく使うのは make clean とする。

Makefileが上記のままでは、make cleanしても何も起こらない。

clean:
   rm -f app *.o

を追加してあげると、望み通りの結果がでる。

また、開発ステータスにあるときはデバッガをよく使いますので、"-g"オプションを使う。

これを変数定義しておいてあげると便利。

DEBUG = -g
app: app.o applib.o
   gcc ${DEBUG} -o app applib.o app.o
app.o: app.c app.h
   gcc ${DEBUG} -c app.c
applib.o: applib.c app.h
   gcc ${DEBUG} -c applib.c
clean:
   rm -f app *.o

こうなる。

テスト工程も終わって、リリース版を作成するときは、

DEBUG =

と空白にしてしまうか、

#DEBUG = -g

と、コメントアウトしてしまえばOK。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS