GNU make は多くのデフォルト ルールを定義します。C のコンパイルとリンクのルールは次のとおりです。
no は、'$(CC) $(CPPFLAGS) $(CFLAGS) -c' という形式のレシピで nc から自動的に作成されます。
n は、C コンパイラを介してリンカ (通常は ld と呼ばれる) を実行することにより、no から自動的に作成されます。使用される正確なレシピは、'$(CC) $(LDFLAGS) no $(LOADLIBES) $(LDLIBS)' です。
したがって、リンカーに「-lm」オプションを追加する方法は、次のように定義することです。
LDLIBS = -lm
次に、Makefile を使用して make を実行すると、次のコマンドが実行されます。
gcc -Wall -g -c 3.c
gcc 3.o -o 3 -lm
(make は C プログラムを 2 つのステップでコンパイルすることに注意してください。最初にオブジェクト ファイルを作成し 3.o、次にオブジェクト ファイルを実行可能ファイルにリンクします 3)
( GNU make マニュアルについては、http://www.gnu.org/software/make/manual/を参照してください)