2016-11-16 8 views
1

で二回「%」文字を使用する:次のように私は私のMakefileのルールになりたいと仮定したMakefile

各オブジェクトファイル./obj/%.oのために、2つのファイルがあります./src/%_1 .cppと./src/%_2.cppに依存します(例:./obj/main.oは./src/main_1.cppと./src/main_2.cppの両方に依存します)。この場合には、メイクファイルを書くの素朴な方法は、

./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp 

である。しかし、このアプローチは動作しません...いずれかが、私はこのような状況でルールを定義することができる方法を提案してもらえますか?

また、私が持っている別の質問です - あなたは次のルールを定義することとします

./obj/%.o: ./src/%_1.cpp 
./obj/%.o: ./src/%_2.cpp 

はその後、事前に

./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp 

のおかげで、この「同等」です。

+0

「この方法は機能しません」と定義します。それらのソースファイルが存在することを前提として、うまく動作するはずです。 – Barry

+0

または、より広義に[mcve]を提供してください。 – Barry

答えて

1

この場合には、メイクファイルを書くの素朴な方法は、

./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp 

である。しかし、このアプローチは(私はあなたが実際に定義していると仮定していますそれがない

確かに動作しません。実行すべきレシピ、ここでは表示していません)。それについては何ができませんか?そして、すべてではない、ノー

./obj/%.o: ./src/%_1.cpp ./src/%_2.cpp 

に、この "同等" である

./obj/%.o: ./src/%_1.cpp 
./obj/%.o: ./src/%_2.cpp 

:あなたは、以下のルールを定義するとし - また、私が持っている別の質問をされ

。レシピを持たないパターンルールはそのパターンルールを削除します。そして、パターンルールはこのように決して結合しません。

Canceling Implicit Rules

+0

こんにちはMadScientist、私は私の不注意にひどく残念です。はい。元のものが動作し、その理由はそれを書くときに間違いを犯したからです...私の質問に答えてくれてありがとう:) –

関連する問題