他のターゲットを呼び出すには、makefileでallを使用してください。

他のターゲットを呼び出すには、makefileでallを使用してください。

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」が再構築されます。liba.exeliblibc.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に依存します。それ以外の場合は両方ともビルドされます。ビルドが完了したら、ソースコードが変更されない限り、再構築する必要はありません()。libaclibsomecode

これが方法ですファイルの生成作業中に依存関係を追跡し、依存するアイテムの変更時間がターゲットよりも最新の場合にのみ、何かを再構築するだけです。

関連情報