私はmakefileを持っています。
src1とsrc2の下のソースファイルからC:/bin/の下にターゲットのセットを構築する必要があります。
それらを順番に要求させてください
$ {DEST_DIR} / ao $ {DEST_DIR} / bo $ {DEST_DIR} / co $ {DEST_DIR} / do
makefileの一部で
DEST_DIR = C:/ bin
SRC_DIR1 = C:/ src1
SRC_DIR2 = C:/ src2
そして私はそれらのためのルールを次のようにしています
#rule#1
$ {DEST_DIR} /%.o:$ {SRC_DIR1} /%.c
#the command required to build the target
echo "Source: $< Target: $@ "
#rule#2
$ {DEST_DIR} /%.o:$ {SRC_DIR2} /%.c
#the command required to build the target
echo "Source: $< Target: $@ "
acとbcがSRC_DIR1にあり、ccとdcがSRC_DIR2にあるとします。
私がビルドすると、aoとboの場合はrule#1に、次にcoの場合はrule#2に移動して、正常にビルドされます。
大丈夫だとは思っていませんでした。私はそれがcoのルール#1に行き、「ターゲットccを作成するルールがありません」というエラーをスローすることを期待していたからです。しかし、それはルール#2に当てはまり、SRC_DIR2のccからcoを構築します。
誰かがそれがどのように機能するかを私に説明できますか?この場合、ワイルドカード文字はどのように機能し、%
ルールの一致はどのように発生しますか?