GNU - makefile (2) Makefile 파일 이름, include, make 작업 방식

1921 단어 makefile
참조 링크:http://blog.csdn.net/haoel/article/details/2888
파일 이름
make [-f|--file] [filename]  make - f mk1          mk1 은 Makefile 의 정 의 를 포함 하고 있 습 니 다.
include 키워드
C 언어 와 유사 한 효과.포 함 된 파일 의 내용 을 현재 위치 에 그대로 놓 습 니 다.
include a b c d e ...      abcde 는 파일 이름 으로 빈 칸 이나 tab 로 구분 합 니 다.메모: include 전에 tab 를 사용 하지 마 십시오. tab 는 명령 이 며 셸 에서 실 행 됩 니 다.
C / C + + 의 \ # include 명령 처럼.파일 이 절대 경로 나 상대 경 로 를 지정 하지 않 으 면 make 는 현재 디 렉 터 리 에서 먼저 찾 습 니 다. 현재 디 렉 터 리 에서 찾 지 못 하면 make 는 아래 디 렉 터 리 에서 찾 습 니 다.
    1. make 가 실 행 될 때 '- I' 또는 '- include - dir' 인자 가 있 으 면 make 는 이 매개 변수 가 지정 한 디 렉 터 리 에서 찾 습 니 다.
         make -I .  현재 디 렉 터 리 에서 찾기 지정    2. 디 렉 터 리 < prefix > / include (일반적으로: / usr / local / bin 또는 / usr / include) 가 존재 하면 make 도 찾 습 니 다.
         이런 방식 은 일반적으로 쓰 지 않 겠 지.외부의 항상 통 제 는 비교적 번거롭다.
    3、-include filename  앞에서 - 오 류 를 무시 하 는 것 을 표시 합 니 다. 파일 이 존재 하지 않 으 면 알림 도 하지 않 고 무시 합 니 다.
makefile 예:
#include    ,        。
#include a.mkf
mymk = a.mkf
-include $(mymk)
edit : $(objs)
		cc -o edit $(objs)
 main.o:
 kbd.o:
 command.o:
 display.o:
 insert.o:
 search.o:
 utils.o:
 files.o:

 .PHONY : clean
 clean :
		-rm edit $(objs)
a.mkf
objs = main.o kbd.o command.o display.o \
	insert.o search.o files.o utils.o

make 의 작업 방식:
GNU make 작업 시 실행 절차 입력: (다른 make 도 비슷 하 다 고 생각 합 니 다)
    1. 모든 Makefile 을 읽 습 니 다.    2. include 의 다른 Makefile 을 읽 습 니 다.    3. 파일 의 변 수 를 초기 화 합 니 다.    4. 은밀 한 규칙 을 유도 하고 모든 규칙 을 분석한다.    5. 모든 대상 파일 에 의존 관계 체인 을 만 듭 니 다.    6. 의존 관계 에 따라 어떤 목표 가 다시 생 성 되 어야 하 는 지 결정 합 니 다.    7. 생 성 명령 을 집행 합 니 다.
1 - 5 단 계 는 1 단계, 6 - 7 은 2 단계 다.첫 번 째 단계 에서 정 의 된 변수 가 사용 되면 make 는 사용 하 는 위치 에 펼 쳐 집 니 다.그러나 make 는 완전히 바로 전개 되 지 않 습 니 다. make 는 지연 전술 을 사용 합 니 다. 만약 에 변수 가 의존 관계 의 규칙 에 나타 나 면 이 의존 이 사용 하기 로 결정 되 어야 변 수 는 그 내부 에서 전 개 됩 니 다.

좋은 웹페이지 즐겨찾기