状況
GNU makeにて、パターンルールを以下のように使用しようと考えているのですが、
パターンルールが認識されず、ただの"%"文字として認識されてしまっています。
コード
# A_%.xからA_%.cを生成 A_%.c: A_%.x @touch $@ # A_%.xを作成 A_%.x: @touch A_%.x
コード実行結果
A_%.c(%文字のまま)が生成される
確認できている内容
前提条件(例えばA_0.x)が存在すること
makeのバージョン
GNU Make 3.81
質問
上記問題の原因についてご存じありませんでしょうか?
そうなってしまった手順をもっと詳しく。
以下、私の結果です。
$ cat makefile
# A_%.cを生成
A_%.c: A_%.x
echo $^ $@
$ touch A_0.x
$ make A_0.c
echo A_0.x A_0.c
A_0.x A_0.c
あと念のため
make --version
を確認してみては
使用したコードの詳細を記載しました。
ご確認お願いします。
makefileの内容はわかりましたから、makeコマンドを実行した手順を書いてください。
あと、make -d A_0.c とかやればmakeがどう推論しているか見ることができます。
% ではなく wildcard 関数で予め展開してみてはどうでしょう。
SRC := $(wildcard A_*.x)
$(SRC:.x=.c): $(SRC)
@touch $@
あなたの回答
tips
プレビュー