0

まず、これを解決する方法がたくさんあるため、タイトルは非常に一般的です。しかし、私はきれいできちんとした方法を探しています。

状況:
2 つの等しいオブジェクト ファイルfoo.ofoo-pi.oがあり、後者は位置に依存しません (でコンパイルされ-fPICます)。どちらも と に依存しfoo.hますbar.h

問題:
コードを複製せずに、 all の依存関係を宣言するにはどうすればよいfoo*.oですbar.hか?

これまでの解決策:
$(shell bash -c 'echo -ne foo{-pi,}.o'): bar.h
$(addsuffix .o, $(addprefix fo, o-pi o)): bar.h
foo.o foo-pi.o: bar.h

最初の解決策は、 をサポートしていないシステムでは移植できませんbash。2 番目の解決策は、addprefix. foo3番目の解決策には、避けたい重複した言及が含まれています。

4

1 に答える 1