2012年1月27日金曜日

Makefile

たくさんのソースファイルを分割コンパイルする際に、フォルダごとにMakefileというファイルを作ると便利。
Macでコンパイラとしてgccを使う場合のテンプレートは以下。

CC=gcc
CFLAGS=-g -Wall
OBJS=library1.o library2.o library3.o main.o

all: main

main: $(OBJS)
    $(CC) $(CFLAGS) -o main $(OBJS)

main.o: main.c library1.h library2.h library3.h
    $(CC) $(CFLAGS) -c main.c

clean:
    rm main main.o library1.o library2.o library3.o

CCはコンパイルコマンド、CFLAGSはコンパイル引数、OBJSはリンクさせる全てのオブジェクトファイル。
作業フォルダにMakefileを置いてコマンドラインで 
$ make
とするだけで、更新されたファイルを自動で判別してコンパイルしてくれる。
これを応用したものを自分のライブラリに置いておくと、各ライブラリを更新した際の作業が減るが、僕はまだやったことありません。 誰かやってみて欲しい。
あと、terminalのbashファイルに色々書いて、コンパイルコマンドを省略するやり方も誰か書いてほしい。

0 件のコメント :

コメントを投稿