Makefile의 참조 함수?

Makefile의 참조 함수?

Makefile종속성을 업데이트하고 컴파일하는 데 사용되는 명령을 추가하기 위해 a를 수정하고 있습니다 .

make clean명령이 작동하고 있습니다 . 이제 다른 명령을 실행하기 전에 이를 실행하려고 합니다 make.

추가하려고 하는데 all: clean작동하지 않는 것 같습니다.

.PHONY: all
all: clean

.PHONY: clean
clean:
        rm -rf build

update-dep:
        mkdir -p build/package_name \
          && # do stuff here

다른 기능이 실행 중일 때 어떻게 깔끔하게 실행되도록 할 수 있나요?

답변1

글쎄, 당신은 종속성이 어떻게 작동하는지 알고 있다고 생각합니다. 콜론 뒤에 넣으면 됩니다. 따라서 일반적인 관용구는 all다음과 같은 종속성을 갖는 것입니다.

all: main_program

그것의 유일한 특별한 점은첫 번째파일의 대상은 기본 대상이므로 allMakefile 시작 부분에 명시적으로 지정하면 기본 대상을 설정할 수 있습니다.

main_program종속성으로 추가하려면 다른 항목과 함께 나열하면 됩니다.main_program.oclean

all: clean main_program

update_dep: clean
    do stuff...

all: cleanmake all다른 종속성은 동일한 목록을 가지지 않으므로 make clean거기에 다른 종속성을 추가할 수 있습니다.

각 실행 전에 모든 것을 정리하는 것은 여전히 ​​좋은 생각이 아닙니다. Make의 전체적인 아이디어는 업데이트가 필요한 파일을 파악하고 업데이트에 필요한 작업만 수행한다는 것이기 때문입니다. clean매번 실행되도록 하려면 이를 다른 모든 대상에 대한 종속성으로 명시적으로 유지해야 합니다.

관련 정보