1

名前のリストから一連の実行可能ファイルまたはライブラリを構築したいと考えています。それらはすべて同じ方法でビルドされ、基本的に辞書式に接続された 2 つのファイルが必要です。

X.exe : X.o X_y.o
    $(CC) -o $@ $^

私のメイクファイルでは、すべての X: を一覧表示し、すべての .exe を自動的にビルドしたいと考えています。だからから

Xs : a b c

ルールを書いたかのように Makefile を実行したい

a.exe : a.o a_y.o
b.exe : b.o b_y.o
c.exe : c.o c_y.o

もちろん、これは別の X を簡単に追加するためです。

私の基本的な問題は、上記の X の定義が一連の名前であり、それを個別のルールに分割する必要があることです。私はパターンについて知っており、foreach テキスト関数を使用しようとしましたが、失敗しました。

これはできますか?

4

1 に答える 1

1

パターンルールが進むべき道のようです:

Xs=a b c

default: $(patsubst %,%.exe,$(Xs))

%.exe : %.o %_y.o
    $(CC) -o $@ $^

パターン ルールの前提条件は、%複数回使用できます。

を使用する必要がないことに注意してくださいforeachmake構築したいすべてのターゲットを指定するだけです。

于 2013-06-26T07:30:57.970 に答える