次のようにコマンドラインに指定することで,マクロCC
の値を強制的に書き換えることができる
(マクロCC
を書き換えることで使用するCコンパイラを変更することを意図している).
$ make CC=gcc
プログラム開発中に,テスト目的である変数の値を表示したいというような場合がある.
下の例では開発中はTEST
というマクロを定義して
関数fact()
の実引数としてどんな値がわたってくるのか
ながめてみようとしている.
#include <stdio.h> int fact(int n) { #if defined(TEST) printf("fact: %d\n", n); #endif return n > 1 ? n * fact(n - 1) : 1; } int main(void) { int i; for (i = 0; i < 6; ++i) printf("%d\n", fact(i)); return 0; }
コマンドラインから引数“CFLAGS=-DTEST
”を与えてmake
すると次のような結果になる.
$ make CFLAGS=-DTEST gcc -DTEST fact.c -o fact
※環境によっては次のようなMakefile
が必要になるかも.
通常は,これと同等の暗黙ルールが既定義になっているはずなので,
たいていの場合Makefile
は不要で,
Makefile
を作らずに上記のコマンドを実行するだけでよいはず.
Makefile |
---|
.c: $(CC) $(CFLAGS) -o $@ $< |
ソースファイル ダウンロード