複数の目標設定

複数の目標設定

私はこのMakefileを持っています:

P5.obj P5.sym: P5.asm
        lc3as P5.asm

P5.objまたはP5.symが古い場合は、アセンブラを実行したいと思います。ただし、P5.symを削除しても再生成されません。

私は何が間違っていましたか?

ベストアンサー1

lc3as P5.asmファイルが作成されP5.obj実行P5.symを試みるとしますmake。)

デフォルトのターゲットは、指定しない限り最初のターゲットです(make-dialectによって異なります)。

たとえば、

# Makefile
a b:
    echo a > a
    echo b > b

実行すると、makeこれら2つのファイルが作成さaれますb。アンインストールbして実行する場合make

`a' is up to date.

aターゲットがデフォルトであるためです。

一般的な解決策は、all次に始まる名前のターゲットを作成することですMakefile

all: a b

a b:
   echo a > a
   echo b > b

.PHONY: all

この場合、削除すると再生成されbますmake(デフォルトの宛先はであり、その依存関係allはそのためです)。ab

おすすめ記事