Makfile 을 어떻게 작성 하 는 지알 아 보기. PHONY
2178 단어 Linux/Shell
build:
go build -o ~/bin/
.PHONY: build
우 리 는 위 코드 에서 언급 한. PHONY. PHONY 가 특수 작업 목표 (Special Built - in Target Names) 라 는 것 을 알 고 있 습 니 다. 그것 은 가짜 목 표를 지정 하 는 데 사용 된다. 즉, 그 뒤의 것 은 실제 파일 이 아니다.
PHONY 목 표 는 실제 파일 이름 이 아 닙 니 다. 명시 적 요청 시 명령 을 수행 하 는 이름 입 니 다. 위조 목 표를 사용 하 는 것 은 두 가지 장점 이 있 습 니 다.
4. 567917. 동명 파일 과 충돌 하지 않도록 -
성능 개선
규칙 을 만 들 면 대상 파일 이 생기 지 않 습 니 다. 명령 은 make 가 목 표를 만 들 때마다 실 행 됩 니 다.
우 리 는 예 를 하나 보 자.
clean:
rm *.o temp
디 렉 터 리 에 "clean"파일 이 있 으 면 규칙 이 효력 을 상실 합 니 다. 디 렉 터 리 에 있 는 파일 "clean"은 항상 최신 이기 때문에 명령 은 영원히 실행 되 지 않 습 니 다. 이 문 제 를 피하 기 위해 "PHONY"를 사용 하여 이 목 표를 가리 킬 수 있 습 니 다. 예 를 들 어:
.PHONY: clean
clean:
rm *.o temp
이렇게 "make clean"을 실행 하면 "clean"파일 의 존재 여 부 를 무시 합 니 다.
포 니 목 표 는 다른 파일 로 생 성 된 실제 파일 이 아니 라 는 것 을 알 고 있 습 니 다. make 는 은밀 한 규칙 검색 을 건 너 뜁 니 다. 포 니 목표 가 성능 을 개선 할 수 있 음 을 설명 하 는 이유 입 니 다. 실제 파일 의 존재 여 부 를 걱정 하지 않 더 라 도.
phony 목 표 는 실제 대상 파일 에 의존 해 서 는 안 됩 니 다. 이 경우 make 가 이 파일 을 업데이트 할 때마다 명령 이 실 행 됩 니 다. phony 목표 가 실제 목표 의 의존 이 아니라면 규칙 의 명령 은 이 목 표를 지정 할 때 만 실 행 됩 니 다. phony 목 표 는 의존 관계 가 있 습 니 다. 디 렉 터 리 에 여러 프로그램 이 있 을 때 Makefile 에 두 는 것 이 더 편리 합 니 다.부족 한 목 표 는 Makefile 의 첫 번 째 목표 이기 때문에 이 phony 목 표를 'all' 이 라 고 부 릅 니 다. 의존 파일 은 각 프로그램 입 니 다.
all : prog1 prog2 prog3
.PHONY : all
prog1 : prog1.o utils.o
cc -o prog1 prog1.o utils.o
prog2 : prog2.o
cc -o prog2 prog2.o
prog3 : prog3.o sort.o utils.o
cc -o prog3 prog3.o sort.o utils.o
==========================================================================
# The "tools"are needed early, so put this first # Don't include stuff already done in $(LIBS) SUBDIRS = tools\post\post/cpu .PHONY : $(SUBDIRS)
===========================================================
위의 Makefile 은 SUBDIRS 가 가상 목표 라 고 밝 혔 습 니 다. 그러면 Makefile 에서 SUBDIRS 로 호출 될 때 매번 이 SUBDIRS 를 업데이트 해 야 합 니 다. 즉, make 할 때마다 이 SUBDIRS 를 다시 읽 습 니 다.
코드 중:
.PHONY : $(LIBS)
# Make links to executive here so that the .c files are in place before dependency generation .PHONY: links links: make -C lib_mips -f links.mk links
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
주 루틴 과 서브 루틴 은 각각 일정 횟수 를 순환한다주 프로 세 스 와 하위 프로 세 스에 서 서로 배척 하 는 양 과 조건 변 수 를 사 용 했 습 니 다. 서브 스 레 드 순환 10 다음 주 스 레 드 순환 100 다음, 이어서 다시 하위 스 레 드 로 돌아 가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.