makefile
私は以下のように1つを書きました。
.PHONY: clean_lib all
a: lib
make [email protected]
c: lib
make [email protected]
clean_lib:
rm -f lib
all: a clean_lib c
呼び出し時に「a」ターゲットがaを構築し、「クリーンアップ」して「c」を呼び出すことをmake all
望みます。これで「c」が再構築されます。lib
a.exe
lib
lib
c.exe
a.exe
そしてhereはc.exe
ビルド時にのみビルドされますlib
。問題は、「クリーン」の後にlib
「c」用に再構築しようとしているアイテムがビルドされていないため、ビルド
c.exe
できないことです。
誰でも私を助けることができますか?
答え1
lib
なぜ真ん中に掃除をするのか理解できません。掃除しなくても使えると思います。
.PHONY: all
lib: somesource
make lib
a: lib
make [email protected]
c: lib
make [email protected]
all: a c
a
どちらもビルドしたいたびc
に依存します。それ以外の場合は両方ともビルドされます。ビルドが完了したら、ソースコードが変更されない限り、再構築する必要はありません()。lib
a
c
lib
somecode
これが方法ですファイルの生成作業中に依存関係を追跡し、依存するアイテムの変更時間がターゲットよりも最新の場合にのみ、何かを再構築するだけです。