대부분의 리눅스 앱은 다음과 같이 컴파일됩니다 :
make
make install clean
내가 이해했듯이 make는 빌드 대상의 이름을 인수로 사용합니다. 그래서 install
사본 일부 파일을 한 후 그 대상이다 clean
임시 파일을 제거하는 대상은.
그러나 make
인수가 지정되지 않은 경우 어떤 대상이 작성 됩니까 (예 : 첫 번째 명령)?
답변
기본적으로, 이는 .
일명 기본 목표로 시작하지 않는 첫 번째 대상을 처리하는 것으로 시작합니다 . 그러기 위해서는 다른 대상, 특히 첫 번째 대상이 의존하는 대상을 처리해야 할 수도 있습니다.
GNU 설명서 확인 커버 모든이 물건을, 그리고 놀라 울 정도로 쉽게 정보를 읽기입니다.
답변
다른 사람들을 몇 초 동안 저장하고 매뉴얼을 읽지 않아도되도록 저장하는 방법은 다음과 같습니다. 이것을 메이크 파일의 맨 위에 추가하십시오 :
.DEFAULT_GOAL := mytarget
mytarget은 이제 “make”가 실행되고 대상이 지정되지 않은 경우 실행되는 대상이됩니다.
이전 버전의 make (<= 3.80)가있는 경우 작동하지 않습니다. 이 경우 anon이 언급 한 것을 수행 할 수 있습니다 .make 파일의 맨 위에 추가하십시오.
.PHONY: default
default: mytarget ;
참조 :
https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
답변
GNU Make를 사용하면이라는 특수 변수를 사용하여 기본 make 대상을 지정할 수도 있습니다 .DEFAULT_GOAL
. Makefile 중간에이 변수를 설정 해제해도 파일의 다음 대상이 기본 대상이됩니다.
참고 : Gnu Make 매뉴얼-특수 변수