makefile
나는 아래와 같이 하나를 썼다 .
.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
. 문제는 "clean" 후에 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
이것이 방법이다파일 생성작동하면서 종속성을 추적하고 의존하는 항목의 수정 시간이 대상보다 최신인 경우에만 무언가를 다시 빌드하면 됩니다.